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 に答える