【问题标题】:PHP DomDocument xml parserPHP DomDocument xml 解析器
【发布时间】:2011-11-17 17:11:20
【问题描述】:

我有一个解析一些 xml 文本的 php 页面。该文本来自 html 文本字段中的用户输入。

只要节点之间有任何空白,Domdocument xml 解析器就无法正确解析文档。本质上它会识别第一个节点,但它无法找到任何嵌套节点。

去掉空格,没问题。

$xmldoc = new DOMDocument();
$xmldoc->loadXML($rawxml);

$top = $xmldoc->documentElement;
if(!$top) {echo "error: xml config is empty"; exit(-1);}
if($top->nodeName != "config") die("error: expect config tag as first element");


$nameNode = $top->childNodes->item(0);

//Fails here
if($nameNode->nodeName != "name") die("error: expect name tag following config tag");

作品

<config><name>sdf2</name></config>

不工作

<config>   <name>sdf2</name></config>

【问题讨论】:

标签: php xml domdocument


【解决方案1】:

这是预期的行为。当您使用 DOM 加载格式化的 XML 文档时,任何空格,例如默认情况下,缩进、换行和节点值将作为 DOMText 实例作为 DOM 的一部分。你可以通过这样做来禁用它

$xmldoc->preserveWhiteSpace = false;

在加载 XML 之前,它将丢弃任何格式化空格。有关更详细的答案,请参阅

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2011-10-11
    • 1970-01-01
    • 2011-06-21
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多