在使用 XSLT 进行转换时,我无法执行节点内容的编码。我的输入 XML 如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Edited by XMLSpy® -->
<catalog>
<cd>
<title>D-Link</title>
<artist>Bob Dylan</artist>
<country>USA</country>
</cd>
<cd>
<title>x-<i>NetGear</i></title>
<artist>Rod Stewart</artist>
<country>UK</country>
</cd>
<cd>
<title>LG</title>
<artist>Andrea Bocelli</artist>
<country>EU</country>
</cd>
</catalog>
XSLT 是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<Root>
<xsl:for-each select="catalog/cd">
<Product>
<xsl:attribute name="title">
<xsl:copy-of select="title/node()"/>
</xsl:attribute>
</Product>
</xsl:for-each>
</Root>
</xsl:template>
</xsl:stylesheet>
目前我收到一个错误:在迭代第二个 CD 标题时,无法在“属性”类型的节点内构造“元素”类型的项目。
预期输出如下:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Product title="D-Link" />
<Product title="x-<i>NetGear</i>" />
<Product title="LG" />
</Root>
有人可以帮我解决上述问题吗?