php - XML 和 PHP5 DOM

标签 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 />";
  }
?>

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

最佳答案

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

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

$xPath = new DOMXPath($xmlHitzakDok);

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

关于php - XML 和 PHP5 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232272/

相关文章:

PHP 词法分析器和解析器生成器?

javascript - 如何使用 jQuery 克隆 XML 节点、更改其中的值并追加它而不更改所有节点?

javascript - 在 javascript 数组中维护对 DOM 对象和/或 jQuery 对象的引用是个坏主意吗?

php - Mysql 查询未在 opencart 中运行且未从数据库中获取数据

php - PHP异常重定向到自定义错误页面

java - 在 Java 中通过正则表达式取消注释 XML 元素

html - 使用 Lua 转义数字 XML 实体

java - xml 中的 DTD 如何使使用 java DOM 更容易解析?

javascript - 如何正确地遍历 getElementsByClassName

javascript - 使用 $.getJSON 从 PHP 文件中检索数据