Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSLT-输入与输出符号;amp;实体破坏变换_Xml_Xslt - Fatal编程技术网

Xml XSLT-输入与输出符号;amp;实体破坏变换

Xml XSLT-输入与输出符号;amp;实体破坏变换,xml,xslt,Xml,Xslt,我正在用php进行转换 我收到了一个要转换的大型XML文件,该文件工作正常,但是在节点中有一个url包含&character(编码为&;)ie http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&;w=95e613ec,b3e54511 我想一切都很好,但是在中&似乎正在破坏该节点上的任何转换,以及xml中出现在该节点之后的所有节点 如果我将XML中的所有内容剥离为amp;这个问题已经解决了,因此已经调试

我正在用php进行转换

我收到了一个要转换的大型XML文件,该文件工作正常,但是在节点中有一个url包含&character(编码为
&;
)ie

http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&;w=95e613ec,b3e54511
我想一切都很好,但是在
中&
似乎正在破坏该节点上的任何转换,以及xml中出现在该节点之后的所有节点

如果我将XML中的所有内容剥离为amp;这个问题已经解决了,因此已经调试过了——我真的不想在转换后把它们去掉再放回去,这有点麻烦。
有什么想法吗?

我无法重现这个所谓的问题。

此转换

<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>
<web:cacheurl xmlns:web="some:web">http://cc.bingj.com/cache.aspx?q=adewy&amp;d=4573100964054074&amp;w=95e613ec,b3e54511</web:cacheurl>

应用于提供的XML文档时(添加名称空间声明,使其格式良好):

http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&;w=95e613ec,b3e54511
生成所需的正确结果

<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>
<web:cacheurl xmlns:web="some:web">http://cc.bingj.com/cache.aspx?q=adewy&amp;d=4573100964054074&amp;w=95e613ec,b3e54511</web:cacheurl>
http://cc.bingj.com/cache.aspx?q=adewy&d=4573100964054074&;w=95e613ec,b3e54511

我使用的所有九个XSLT处理器(1.0和2.0)都会产生相同的结果

我在Stylus studio 2011中使用Saxon 9.1 XSLT处理器时遇到了这个问题。 使用Microsoft MSXML 6处理器时,问题消失了

更新:


只有在属性值中使用“与”时才会出现问题…

请确切说明您做了什么以及发生了什么。“似乎正在破坏任何转换”对于诊断来说不够精确。你是对的,这不是问题所在。XML中的其他地方导致了这个问题。