我试图将XSLT用于下面给出的XML-
<?xml version="1.0" encoding="UTF-8"?>
<a:catalog>
<a:cd>
<a:title>Empire Burlesque</a:title>
<a:artist>Bob Dylan</a:artist>
<a:country>USA</a:country>
</a:cd>
<a:cd>
<a:title>Hide your heart</a:title>
<a:artist>Bonnie Tyler</a:artist>
<a:country>UK</a:country>
</a:cd>
</a:catalog>
在下面id我的XSLT,它正在尝试运行以获取a:title
并a:artist
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My test XSLT</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="a:catalog/a:cd">
<tr>
<td><xsl:value-of select="a:title"/></td>
<td><xsl:value-of select="a:artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在这个没有命名空间的情况下,我可以获取输出,但不能使用命名空间。还是我应该编写代码以从 XML 中删除命名空间?
XML 和 XSLT 都必须声明正在使用的所有命名空间。
(否,不要编写代码来删除命名空间。 命名空间在 XML 词汇表定义和管理中起着重要作用。
相反,请添加命名空间声明,例如
xmlns:a="http://example.com/a"
到 XML 和 XSLT 文件中的根元素。
请注意,如果在 XML 文档中使用命名空间前缀而不对其进行定义,则会阻止 XML 文档的命名空间格式正确。