0

我必须阅读大型(大约 200MB)XML 文件,我正在使用 xmlreader 和 PHP。节点 URL 中包含未转义的 & 符号。解析总是在第一个 url 节点上停止。我使用的编码 windows-1250 与 XML 文件的 xml 标记中指定的相同。

我收到错误:parser error : EntityRef: expecting ';' in

是否可以解析带有 & in NODE 值的 XML?

感谢您的任何提示,如果您需要,我可以分享代码。

4

2 回答 2

1

@hakre 是正确的。为了解析任何 XML,您必须首先预处理数据。原因是在 XML 中,“&”仅用于实体。例如,如果您使用的是 XML,则开头的 '<' 和关闭的 '>' 非常重要,以下节点对解析器没有任何意义:

<object>This object is > than the other object</object>

解析器认为文本中间的“>”试图在某处关闭标签,但没有匹配的开始标签,所以会混淆。为此,您需要键入以下内容:

<object>This object is &gt; than the other object</object>

其他实体包括:&lt;&amp;

于 2015-04-17T00:47:12.910 回答
1

是否可以解析带有 & in NODE 值的 XML?

不,这意味着该文件根本不是格式良好的 XML,因此不能真正成为 XML 文件,并且没有 XML 文件解析器可以处理它,否则它不会是 XML 解析器。

但是,您可以在将数据传递给 XML 解析器之前对其进行预处理并自己解决问题 ( &-> &amp;)。

于 2013-03-01T09:00:07.753 回答