我不明白为什么我不能引用XML属性'headendId'。我在这上面引用了几篇帖子,我的语法似乎没问题?谁能解释我做错了什么?提前谢谢。
<?php
$reader = new XMLReader();
$reader->open('file.xml');
while($reader->read())
{
if($reader->nodeType == XMLREADER::ELEMENT && $reader->localName == 'headend')
{
//$reader->read();
$headend = (string)$reader->getAttribute('headendId');
echo $headend;
}
}
(xml是)
<lineup>
<headend headendId="something">
<name>some name</name>
<ids>ids</ids>
<codes>codes</codes>
</headend>
</lineup>
答案 0 :(得分:3)
找到它后,不要使用->read()
前进到下一个节点(属性不是节点):
while ($reader->read())
{
if ($reader->nodeType === XMLREADER::ELEMENT
&& $reader->localName === 'headend')
{
echo $reader->getAttribute('headendId');
}
}
答案 1 :(得分:2)
它与概述last time类似:
require('xmlreader-iterators.php'); // https://gist.github.com/hakre/5147685
$elements = new XMLElementIterator($reader, 'headend');
foreach ($elements as $element) {
echo $element->getAttribute('headendId'), "\n";
}
XMLElementIterator
只允许迭代特定元素,在这里您需要headend
个元素。
然后在每个元素上,您可以调用getAttribute()
方法来获取头端headendId属性的字符串值。