2

我正在开发一个应用程序,我需要转换如下所示的 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 />";
  }
?>

我没有得到任何结果。哪个是问题?

4

1 回答 1

3

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

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

$xPath = new DOMXPath($xmlHitzakDok);

foreach ($xPath->query('//words/word') AS $item)
{
    echo $item->getAttribute('id') . " = " . $item->nodeValue . "<br/>";
}
于 2012-04-19T16:25:05.673 回答