[英]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.