SitePoint Sponsor

User Tag List

Results 1 to 5 of 5

Thread: XML parse

  1. #1
    SitePoint Member
    Join Date
    Feb 2013
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    XML parse

    the followings are XML sample code.
    Code 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>
    I only know PHP XMLReader to get value

    Code PHP:
    while ( $reader->read() ) {
      if (  $reader->nodeType ==XMLReader::ELEMENT && $reader->name == "attribute" ) {
        printf("id=%s, name=%s\n", $reader->getAttribute('id'), $reader->getAttribute('name'));
      }
    }
    But how to get attribute A1, A2 . I would like to get 40, and 50 both .Like this

    id=14, name=A1, value 40
    id=15, name=A2, value 50

  2. #2
    SitePoint Zealot
    Join Date
    Jun 2011
    Location
    Kolding, Denmark
    Posts
    108
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Use value property to get the value of the node.
    PHP Code:
    while ( $reader->read() ) {
      if (  
    $reader->nodeType ==XMLReader::ELEMENT && $reader->name == "attribute" ) {
        
    printf("id=%s, name=%s value=%s\n"$reader->getAttribute('id'), $reader->getAttribute('name'), $reader->value);
      }


  3. #3
    SitePoint Member
    Join Date
    Feb 2013
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks for your comment But nothing show. I have tried it however it does not work successfully.
    help me please

  4. #4
    SitePoint Zealot
    Join Date
    Jun 2011
    Location
    Kolding, Denmark
    Posts
    108
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    My mistake, it's value of TEXT subnode of attribute node, you want. Something like this should work
    PHP Code:
    while ( $reader->read() ) {
      if (
    $reader->nodeType == XMLReader::ELEMENT && $reader->name == 'attribute') {
        
    $DOMNode $reader->expand();
        
    printf("id=%s, name=%s value=%s\n"$reader->getAttribute('id'), $reader->getAttribute('name'), $DOMNode->textContent); 
      }


  5. #5
    @php.net Salathe's Avatar
    Join Date
    Dec 2004
    Location
    Edinburgh
    Posts
    1,397
    Mentioned
    63 Post(s)
    Tagged
    0 Thread(s)
    Salathe
    Software Developer and PHP Manual Author.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •