2013-09-30 72 views
1

INPUTDomDocument getElementById不起作用?

<root id="root"> 
<p id="p1"><i>Title</i></p> 
<p id="p2"><b id="b1">AAA<sup>1</sup>, BBB<sup>2</sup></b></p> 
</root> 

PHP代碼,

$dom2 = new DomDocument(); 
$dom2->loadXML($input); 
$e = $dom2->getElementById('p1'); 
    var_dump($e); 

當我運行,顯示的var_dump空...但P1是存在的,在<p id="p1">

回答

2

您正在加載一個XML文件,該文件可能沒有定義id屬性的DTD。

您也許可以使用Xpath來查找這些元素。

$xpath = new DOMXPath($dom2); 
$element = $xpath->query("//*[@id='p1']")->item(0); 
+0

感謝Alex!請記住,可以使用xpath ...嗡嗡聲......但是我需要爲每個「XML片段」使用getElementById方法的整個DTD?有一種解決方法表達更簡單的DTD? –

+0

@PeterKrauss我還沒有嘗試過,但可能有一種解決方法。 – alex

相關問題