簡體   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