【问题标题】:PHP SimpleXMLElement not parsing <title> nodePHP SimpleXMLElement 不解析 <title> 节点
【发布时间】:2012-02-26 04:37:24
【问题描述】:

我有一个简单的格式良好的 XML 文档,我正在使用 PHP 将其写入页面。由于某种原因,输出从不包含标题节点,经过研究我无法弄清楚。如果我将标题节点更改为“标题”或其他名称,它会包含在输出中,但是当其命名为“标题”时,会跳过此节点。

这是 XML 文档代码...

    <?xml version="1.0" encoding="UTF-8"?>
    <items>
        <product>
            <id>cd1</id>
            <title>CD One</title>
            <description>This is my first CD</description>
            <img>/images/sample.jpg</img>
            <price>14.99</price>
        </product>
    </items>

PHP 代码如下所示...

    <?php
    $filename = '../catalog.xml';

    $contents = file_get_contents($filename);

    echo $contents;
    ?>

【问题讨论】:

  • 这很奇怪。您是否尝试过使用 SimpleXML 阅读它,看看是否得到类似的结果?
  • 是的。结果相同。我刚刚在我的机器上安装了 WAMP。您认为这可能是 PHP 配置问题吗?
  • 另外,我使用 NetBeans 7.1 作为我的 IDE。我是这个软件的新手,所以这也可能是问题的一部分。

标签: php xml title xmlnode


【解决方案1】:

嗯,您发布的 XML 不是有效的 XML;

编码应为小写。试试这个字符串:

<?xml version="1.0" encoding="utf-8"?>
    <items>
        <product>
            <id>cd1</id>
            <title>CD One</title>
            <description>This is my first CD</description>
            <img>/images/sample.jpg</img>
            <price>14.99</price>
        </product>
    </items>

在此处验证:http://validator.w3.org/check

【讨论】:

  • 它确实验证了,XML 的 utf-8 编码声明示例在 W3Schools 上大写...w3schools.com/xml/xml_encoding.asp
  • 谢谢,我还是试了一下。没有骰子。
  • 成功了吗?因为我认为您的声明中一定有空格。 . .
  • 这是我的一个明显错误。我注意到 节点内容被放置在浏览器选项卡中。问题是我在页面上没有正确的 ,因为我只是想测试这段代码。一旦我添加了 HTML,并使用 SimpleXML 解析了 XML,它就可以正常工作了。谢谢。
  • 很高兴您找到了解决方案!我们喜欢积极致力于解决自身问题的 SO 成员。
猜你喜欢
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 2013-07-13
相关资源
最近更新 更多