1

我正在读取 php 中的 xml,但解析时出现错误:

警告:simplexml_load_string() [function.simplexml-load-string]:实体:第 5 行:解析器错误:解析属性名称时出错

我的 xml 字符串是:

$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message>
  <date>1352210570</date>
  <from>Rui <rui@mail.pt></from>
  <subject>Mensagem de Teste</subject>
  <url>test.com</url>
</message>
</messages>';

我用 simplexml_load_string($xmlString); 解析 xml

我怎样才能逃避 from 节点上的 < 和 > ?

4

1 回答 1

0
$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message>
  <date>1352210570</date>
  <from><![CDATA[Rui <rui@mail.pt>]]></from>
  <subject>Mensagem de Teste</subject>
  <url>test.com</url>
</message>
</messages>';

添加到您的代码是<![CDATA[在您的标签之后<from>和您的标签]]>之前包含</from>

请注意,在 CDATA 标记中,没有引号来表示字符串。这最初让我绊倒了,所以我试图确保它不会发生在其他人身上。

While &lt; and &gt; are probably a bit speedier in terms of performance, if you're writing potentially dynamic XML strings, The <![CDATA[someText]]> is much more of a "blanket escape"

于 2012-11-20T14:44:42.867 回答