我正在开发一个应用程序,我需要转换看起来像这样的XML文档(words.xml):
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE words SYSTEM "words.dtd">
<words>
<word id="word_1">Alfa</word>
<word id="word_2">Beta</word>
<word id="word_3">Gamma</word>
<word id="word_4">Delta</word>
<word id="word_5">Zeta</word>
</words>
使用PHP5和DOM。我希望结果是(在这种情况下):
word_1 = Alfa
word_2 = Beta
word_3 = Gamma
word_4 = Delta
word_5 = Zeta
我的PHP代码:
<?php
$xmlHitzakDok = new DOMDocument();
$xmlHitzakDok->load("words.xml");
$x = $xmlHitzakDok->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br />";
}
?>
我没有得到任何结果。问题出在哪?
答案 0 :(得分:3)
问题不在于$xmlHitzakDok->documentElement
不是<words>
元素,而是文档本身,它不包含任何数据。
我建议使用xpath来获取你想要的元素。
$xPath = new DOMXPath($xmlHitzakDok);
foreach ($xPath->query('//words/word') AS $item)
{
echo $item->getAttribute('id') . " = " . $item->nodeValue . "<br/>";
}