【发布时间】:2011-10-13 06:15:50
【问题描述】:
假设我的 XML 如下所示:
<record>
<row name="title">this item</row>
<row name="url">this url</row>
</record>
现在我正在做这样的事情:
$xml = new DOMDocument();
$xml->load('xmlfile.xml');
echo $xml->getElementByTagName('row')->item(0)->attributes->getNamedItem('title')->nodeValue;
但这只是给了我:
注意:试图获取非对象 id 的属性
有人知道如何获取“name”属性值为“title”的节点值吗?
【问题讨论】:
-
使用 XPath:
/record/row[@name='title']。 -
就像迈克尔在回答 #3 中回答的那样。这看起来是正确的方法。但我无法让它工作。
-
请参阅my answer here 以获取有关 DOM 和 SimpleXML 的完整示例。只需将其调整为您的 XML。 * 上有很多其他示例显示 DOM 的使用情况。
-
感谢 Gordon,但就像我在其他答案中所说的那样,由于内存使用,我不想使用 foreach 循环。
-
如果内存是个问题,你一开始就不应该使用 DOM。它将使用大约 10 倍于源文档的大小,因为它必须将 xml 扩展为一棵树。那就试试 XML Reader。 foreach 绝对不是问题。
标签: php attributes domdocument nodevalue