我在php中进行转换。
我收到一个要转换的大型XML文件 - 这很好但是在一个节点内有一个包含&的URL。字符(编码为&
)即
<web:cacheurl>http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&w=95e613ec,b3e54511</web:cacheurl>
我认为一切都很好,但是&amp; &
中的{{1}}似乎打破了该节点上的任何转换以及xml中显示在其后面的所有节点。
如果我剥离所有&amp;超出XML只是放大器;问题是固定的,因此调试 - 我真的不想剥离它们然后在转换后把它们放回去,它有点hacky。 有什么想法吗?
答案 0 :(得分:2)
我无法重现这个所谓的问题。
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
应用于提供的XML文档(添加了名称空间声明,以使其格式正确):
<web:cacheurl xmlns:web="some:web">http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&w=95e613ec,b3e54511</web:cacheurl>
生成想要的正确结果:
<web:cacheurl xmlns:web="some:web">http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&w=95e613ec,b3e54511</web:cacheurl>
同样的结果是由我使用的所有九个XSLT(1.0和2.0)处理器产生的。
答案 1 :(得分:0)
在Stylus studio 2011中使用Saxon 9.1 xslt处理器时遇到了这个问题。 使用Microsoft MSXML 6处理器时,问题消失了。
<强>更新强>
问题仅在属性值的使用&符号时出现