2011-12-17 26 views
0

我正在嘗試將一些從窗體接收到的數據添加到已存在的XML文件中。我在PHP中使用DOMDocument將數據添加到文件中...如果我知道只有這個名稱的一個元素(XML(PHP DOM)),我該如何選擇它?

儘管我在添加數據方面取得了一些成功,但它添加到了錯誤的元素中。

現在我知道只有一個具有某個名稱的元素,這將是根元素。我也知道只會有一個名稱包含其他數據的元素。

這些元素沒有ID,我想在PHP中使用DOMDocument以getElementsByTagName讀取它們。

所以,如果我知道有一個要和整個文件名只有一個元素,那麼我可以做這樣的事情:

$element = $dom->getElementByTagName('ElementName'); $element[0];

我的意思是我只能選擇第一個元素在數組中?我該怎麼做?因爲上面的代碼不起作用。

+0

哪個DOM庫? DOM文檔? SimpleXML的? – 2011-12-17 14:57:44

+0

DOMDocument .... – 2011-12-17 14:58:43

回答

3

TagName引用html或xml標籤的名稱。如果只有一個,你應該能夠做這樣的事情:

$element = $dom->getElementByTagName('ElementName')->item(0); 

然而,它聽起來像你真正尋找可以使用XPath來完成:

$xpath = new DOMXPath($dom); 
$elements = $xpath->query("//*[@name='ElementName']"); 

foreach ($elements as $node) 
{ 
    $element[] = $node; 
} 

現在$元素[0 ]應該是你正在尋找的元素。

+0

謝謝...它的工作完美無缺...... – 2011-12-17 15:01:38

+0

Arjun沒有看'name'屬性,爲什麼在使用DOMNodeList時很容易構建一個數組呢? – salathe 2011-12-17 15:24:41

相關問題