【问题标题】:how can i fix this XML error我该如何解决这个 XML 错误
【发布时间】:2010-11-26 07:47:19
【问题描述】:

我将一个字符串保存到数据库中
然后我在 php 文件中以 xml 格式检索该数据,并从另一个 php 调用该 xml 数据 文件。它适用于存储在数据库中的简单文本记录,但是当我保存这样的字符串时 我将 &gt 然后保存到数据库

 如果 x&lty 和 y>z

并在 php 文件中检索它输出的是一个 xml 结构 例如

&ltquestions>&ltquestion>&ltquestion_id>2&lt/question_id>
&ltquestion>什么是矩阵&lt/question>&ltweight>6&lt/weight>
&ltsubject_code>4&lt/subject_code>&lt/question>

&ltquestion >&ltquestion_id>3&lt/question_id>&ltquestion>平方根 3 是&lt/question>&ltweight>3&lt/weight>&ltsubject_code>4&lt/subject_code>&lt/question>

&ltquestion>&ltquestion_id>15&lt/question_id>&ltquestion>什么是设置&lt/question>&ltweight>4&lt/weight>&ltsubject_code>4&lt/subject_code>&lt/question>&ltquestion>&ltquestion_id>16&lt/question_id>

&ltquestion>如果 x &lt y, y &lt z 那么&lt/question>&ltweight> 4&lt/weight>&ltsubject_code>4&lt/subject_code>&lt/question>&lt/questions>

它在最后一个问题中显示 &lt 而不是 ' 但是当我从另一个 php 文件中调用它时,它会给出错误

警告:simplexml_load_string():实体:第 1 行:解析器错误:EntityRef:期待 ';'在 /var/www/test/view/addTestQuestion.php
第 54 行调用堆栈:0.0007 332148 1. {main}() /var/www/test/view/addTestQuestion.php:0 0.0222 333892 2. simplexml_load_string ()
/var/www/test/view/addTestQuestion.php:54 警告:simplexml_load_string(): ubject_code>16If x /var/www/test/view/addTestQuestion.php:0 0.0222 333892 2. simplexml_load_string()
/var/www/test/view/addTestQuestion.php:54 警告:simplexml_load_string(): ^
在 /var/www/test/view/addTestQuestion.php 第 54 行调用堆栈:0.0007 332148 1。 {main}() /var/www/test/view/addTestQuestion.php:0 0.0222 333892 2. simplexml_load_string() /var/www/test/view/addTestQuestion.php:54 警告:simplexml_load_string():实体:第 1 行:解析器错误:EntityRef:期待';'在
/var/www/test/view/addTestQuestion.php 第 54 行调用堆栈:0.0007 332148 1. {main}() /var/www/test/view/addTestQuestion.php:0 0.0222 333892 2. simplexml_load_string () /var/www/test/view/addTestQuestion.php:54 警告:simplexml_load_string(): de>16If x line 54 Call Stack: 0.0007 332148 1. {main}() /var/www/test/view/addTestQuestion .php:0 0.0222 333892 2. simplexml_load_string() /var/www/test/view/addTestQuestion.php:54 警告:simplexml_load_string(): ^ in
/var/www/test/view/addTestQuestion.php 上线54 调用堆栈:0.0007 332148 1. {main}() /var/www/test/view/addTestQuestion.php:0 0.0222 333892 2. simplexml_load_string()
/var/www/test/view/addTestQuestion.php: 54 注意:尝试在第 56 行的 /var/www/test/view/addTestQuestion.php 中获取非对象的属性调用堆栈:0.0007 332148 1. {main}
() /var/www/test/view /addTestQuestion.php:0 警告:在 /var/www/test/view/addTestQuestion.php 中为
foreach() 提供的参数无效,第 56 行调用堆栈:0.0007 3 32148 1. {main}() /var/www/test/view/addTestQuestion.php:0

任何帮助将不胜感激

【问题讨论】:

    标签: php


    【解决方案1】:

    引用以& 开头,以; 结尾。你在任何地方都没有;

    【讨论】:

      【解决方案2】:

      您不能将 <> 字符用作 XML 中的文字字符,请使用实体:

      <question>If &lt; y, y &gt; z</question>
      

      检索到该文本字符串后,您可以使用html_entity_decode 函数将其解码为真正的 XML 字符串。

      【讨论】:

        猜你喜欢
        • 2016-07-21
        • 2016-09-09
        • 2015-02-28
        • 2013-08-16
        • 2020-04-17
        • 1970-01-01
        相关资源
        最近更新 更多