使用XSLT转换xml中的特殊字符
我正在尝试使用xslt将xml中的特殊字符转换为其编码形式 例如:使用XSLT转换xml中的特殊字符,xml,xslt,xslt-1.0,special-characters,Xml,Xslt,Xslt 1.0,Special Characters,我正在尝试使用xslt将xml中的特殊字符转换为其编码形式 例如: & to & " to " < to < > to > &to&; “到” 到 等等。 下面给出了我使用的代码 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999
& to &
" to "
< to <
> to >
&to&;
“到”
到
等等。
下面给出了我使用的代码
<?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" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates select="//search-results/items" />
</xsl:template>
<xsl:template match="items">
<textarea>
<xsl:apply-templates select="file-item" />
</textarea>
</xsl:template>
<xsl:template match="file-item">
<xsl:apply-templates select="." mode="details"/>
</xsl:template>
<xsl:template match="*" mode="details">
<file-item>
<id><xsl:value-of select = "@id"/></id>
<xsl:copy-of select = "name"/>
<xsl:copy-of select = "creation-date" />
<xsl:copy-of select = "modification-date"/>
<xsl:copy-of select = "file-info"/>
<xsl:copy-of select = "creator"/>
<xsl:copy-of select = "last-modifier"/>
</file-item>
</xsl:template>
</xsl:stylesheet>
XML结构是
<id>5060554</id>
<name>This is a File && and it is a "Test File" </name>
<creation-date timestamp="1487516375360">19.02.2017 14:59</creation-date>
<modification-date timestamp="1488128705695">26.02.2017 17:05</modification-date>
<file-info>
<name>Background-Wallpaper & Nature.jpg</name>
<creator user-id="2196">
<last-modifier user-id="2120">
5060554
这是一个文件&&它是一个“测试文件”
19.02.2017 14:59
26.02.2017 17:05
背景壁纸&Nature.jpg
输出还应该包含xml节点,这就是我在textarea中使用xsl:copy of而不是xsl:value of的原因。因为select=“name”的xsl:value将只输出这是一个文件,它是一个“测试文件”,而xsl:copy of将生成这是一个文件,它是一个“测试文件”
我正在使用XSLT版本1.o
我想要的输出是
这是一个文件&&;它是一个“测试文件”
您所说的输入XML包含
<name>This is a File && and it is a "Test File" </name>
这是一个文件&&它是一个“测试文件”
这是一个矛盾。如果它包含该字符串,则它不是XML。XML中的符号总是转义的。如果输入不是XML,那么就不能使用XSLT来处理它
您说“我们正在使用XSLT将数据转换为xml,然后再转换为html(网站的UI视图)。”似乎您将数据转换为xml的方式不正确,您需要解决这个问题。要使用XSLT处理xml,您需要格式良好的输入数据。实体名称必须紧跟实体引用中的“&”。这意味着&字符需要在输入中转义或标记为CDATA(同样适用于