簡體   English   中英

使用XMLReader和PHP獲取XML屬性

[英]Getting XML Attribute with XMLReader and PHP

我不明白為什么我不能引用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>

找到它后,不要使用->read()進入下一個節點 (屬性不是節點):

while ($reader->read())
{
        if ($reader->nodeType === XMLREADER::ELEMENT 
            && $reader->localName === 'headend')
        {
                echo $reader->getAttribute('headendId');
        }
}

它的工作方式與上次概述的類似:

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()方法來獲取headend headendId屬性的字符串值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM