XML和PHP5 DOM

时间:2012-04-19 16:12:19

标签: php xml dom

我正在开发一个应用程序,我需要转换看起来像这样的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 />";
  }
?>

我没有得到任何结果。问题出在哪?

1 个答案:

答案 0 :(得分:3)

问题不在于$xmlHitzakDok->documentElement不是<words>元素,而是文档本身,它不包含任何数据。

我建议使用xpath来获取你想要的元素。

$xPath = new DOMXPath($xmlHitzakDok);

foreach ($xPath->query('//words/word') AS $item)
{
    echo $item->getAttribute('id') . " = " . $item->nodeValue . "<br/>";
}