开发者

parse XML attribute via PHP XMLReader

开发者 https://www.devze.com 2022-12-27 23:49 出处:网络
the followings are XML sample code. <m:ad xmlns:m=\"http://www.w3c.org/soap\"> <title><![CDATA[TITLE]]></title>

the followings are XML sample code.

<m:ad xmlns:m="http://www.w3c.org/soap">
    <title><![CDATA[TITLE]]></title>
    <phone>123456789</phone>
    <attributeGroup>
       <attribute id="14" name="A1">40</attribute>
       <attribute id="15" name="A2">50</attribute>
   </attributeGroup>
</m:ad>

I only know PHP XMLReader to get value

$reader = new XMLReader();        
if ($reader->name == "title" && $reader->nodeTyp开发者_StackOverflow中文版e ==XMLReader::ELEMENT) {
    echo $reader2->read(); // will get TITLE   
 }

But how to get attribute A1, A2 . I would like to get 40, and 50 both .


$reader = new XMLReader();
$reader->xml('<m:ad xmlns:m="http://www.w3c.org/soap">
    <title><![CDATA[TITLE]]></title>
    <phone>123456789</phone>
    <attributeGroup>
       <attribute id="14" name="A1">40</attribute>
       <attribute id="15" name="A2">50</attribute>
   </attributeGroup>
</m:ad>');


while ( $reader->read() ) {
  if (  $reader->nodeType ==XMLReader::ELEMENT && $reader->name == "attribute" ) {
    printf("id=%s, name=%s\n", $reader->getAttribute('id'), $reader->getAttribute('name'));
  }
}

prints

id=14, name=A1
id=15, name=A2
0

精彩评论

暂无评论...
验证码 换一张
取 消