【发布时间】:2018-03-22 12:10:43
【问题描述】:
我正在尝试将 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>
下面是我的 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>
在没有命名空间的情况下,我可以获得输出,但不能使用命名空间。 或者我应该写 code for remove namespaces from XML 吗?
【问题讨论】:
-
您还需要在 XSL 中映射以
a为前缀的命名空间。您共享的 XML 未显示任何命名空间。
标签: xml xslt xpath xslt-1.0 xslt-2.0