2016-07-19 8 views
0

私はからのコードを試してみてくださいHow can I use XSLT to assemble an XML HierarchyXSLTを使用して2つのXMLを結合するにはどうすればよいですか?

a.xml:

<Xml> 
     <Classes> 
      <Class Name="BIOLOGY101" ClassId="11"/> 
      <Class Name="PHYSICS101" ClassId="13"/> 
      <Class Name="CALCULUS101" ClassId="17"/> 
      <Class Name="BIOLOGY101" ClassId="19"/> 
     </Classes> 
    </Xml> 

b.xml:

<Xml> 
    <Students> 
     <Student Name="Bob Johnson" ClassId="11"/> 
     <Student Name="Bob Johnson" ClassId="17"/> 
     <Student Name="Bob Johnson" ClassId="19"/> 
     <Student Name="Joe Jackson" ClassId="11"/> 
     <Student Name="Joe Jackson" ClassId="13"/> 
     <Student Name="Joe Jackson" ClassId="17"/> 
     <Student Name="Rick Robertson" ClassId="13"/> 
     <Student Name="Rick Robertson" ClassId="17"/> 
     <Student Name="Rick Robertson" ClassId="19"/> 
    </Students> 
</Xml> 

スタイルシート(merge.xsl):

<?xml version="1.0" encoding="utf-8"?> 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="node() | @*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node() | @*"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="Class"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*"/> 
     <!-- Apply <Student> elements from b.xml --> 
     <xsl:apply-templates 
     select="document('b.xml')/Xml/Students/Student 
      [@ClassId = current()/@ClassId]"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="Student"> 
    <xsl:copy> 
     <xsl:apply-templates select="@Name"/> 
    </xsl:copy> 
    </xsl:template> 

</xsl:stylesheet> 

希望の出力:

<?xml version="1.0"?> 
<Xml> 
    <Classes> 
    <Class Name="BIOLOGY101" ClassId="11"> 
     <Student Name="Bob Johnson"/> 
     <Student Name="Joe Jackson"/> 
    </Class> 
    <Class Name="PHYSICS101" ClassId="13"> 
     <Student Name="Joe Jackson"/> 
     <Student Name="Rick Robertson"/> 
    </Class> 
    <Class Name="CALCULUS101" ClassId="17"> 
     <Student Name="Bob Johnson"/> 
     <Student Name="Joe Jackson"/> 
     <Student Name="Rick Robertson"/> 
    </Class> 
    <Class Name="BIOLOGY101" ClassId="19"> 
     <Student Name="Bob Johnson"/> 
     <Student Name="Rick Robertson"/> 
    </Class> 
    </Classes> 
</Xml> 

が、私はa.xmlを起動するとき、私は..結果は空白になって私のブラウザのMozillaで何を示す 何を取得。.. (注:ヘッダa.xmlに私はこのコードを書く:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet type="text/xsl" href="merge.xsl"?> 

誰かが私を喜ばせることができますか? ありがとう..

+0

を添付

は、それが今来ていますか? – nawazlj

答えて

0

正常に動作しています。結果を見るにはF12を押してください。詳細情報ブラウザ(Firefox/Chrome)が空白の結果を表示している理由を参照してください。スクリーンショット(開発ツール)

enter image description here

Why XSLT is not working in browser

+0

まだ動作していません@nawazlj と私はhttp://stackoverflow.com/questions/29941662/xslt-not-working-in-web-browserを見ていますが、まだ動作していません。 – Rijal

+0

@Rijal 'F12'を押してから何が来るのかをスクリーンショットします。 – nawazlj

+0

は、私はちょうど結果を示す、F12キーを押した後、知っている:感謝@nawazlj それは:) – Rijal

関連する問題