繁体   English   中英

PHP DomDocument xml解析器

[英]PHP DomDocument xml parser

我有一个解析某些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>

这是预期的行为。 当您使用DOM加载格式化的XML文档时,默认情况下,任何空格(例如,缩进,换行符和节点值)都将作为DOMText实例作为DOM的一部分。 您可以通过执行以下操作禁用此功能

$xmldoc->preserveWhiteSpace = false;

在加载XML之前,XML将随后丢弃所有格式的空白。 有关更详细的答案,请参见

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM