2012-06-05 24 views

回答

1
<?php 
     $xmlDoc = new DOMDocument(); 
     $xmlDoc->load('<<your file>>>'); 
    //$xmlDoc->loadHTML($sourceString); //-> if its a string you have 
     $xpath = new DOMXpath($doc); 
     $elements = $xpath->query("Your XPath"); 

     //if you are sure there is only one div, for the Xpath, you can use a index 0 in the next statement, else uou have to itereate it in a loop 

    $node = $elements->item(0); 

    $attrib1 = $node->attributes->getNamedItem("<attribute_name1>"); 
    $attrib2 = $node->attributes->getNamedItem("<attribute_name2>"); 
    $attrib3 = $node->attributes->getNamedItem("<attribute_name3>"); 
    .... 



     ?> 
0

該代碼選擇所有具有屬性名稱和類別的div。請參閱下文以瞭解如何從所選節點中選擇信息。

<?php 

    $xmlstring = '<root>' . 
     '<div name="value1" class="value2" myarg="value3"></div>' . 
     '<div name="value4"></div>' . 
    '</root>'; 
    $xml = simplexml_load_string($xmlstring); 

    // Select all div's that have attributes name and class 
    $xpath = "//div[@name and @class]"; 
    var_dump($result = $xml->xpath($xpath)); 

    /* Outputs: 
     array(1) { 
      [0]=> 
      object(SimpleXMLElement)#3 (1) { 
      ["@attributes"]=> 
      array(3) { 
       ["name"]=> 
       string(6) "value1" 
       ["class"]=> 
       string(6) "value2" 
       ["myarg"]=> 
       string(6) "value3" 
      } 
      } 
     } 
    */ 

    // note that only one iteration is performed 
    // as the second div does not have an attribut 
    // called 'class'. 
    foreach($result as $element) 
    { 
     echo $element['name']; // value1 
     echo $element['class']; // value2 
    } 

    // or, if only one div is present in the document: 
    echo $result[0]['name'];  // value1 
    echo $result[0]['class']; // value2 

?> 
相關問題