我尝试来自How can I use XSLT to assemble an XML Hierarchy
的代码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启动时,我得到的结果是BLANK .. 什么都没有显示在我的浏览器Mozilla .. (注意:在头文件a.xml中我写了这段代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="merge.xsl"?>
有人能帮我吗?
感谢..
答案 0 :(得分:0)
工作正常。按F12
以查看结果。有关详细信息,请参阅浏览器(Firefox / Chrome)显示空白结果的原因。
附加截图(开发者工具)