2012-11-05 41 views
0

如何將標記ref分配給文本?空標記xml + php + dom

$xml =<<<EOT 
<?xml version="1.0"?> 
<root> 
<section name="Section2"> 
    <category id="category1_of_section2" name="msn"> 
    teste 
    <arti name="article2">value1</arti> 
    <arti name="article3">value2 <sref ref="article6" />value6 <sref ref="article7" />value7</arti> 
    <arti name="article4">value3 <sref ref="article8" />value8</arti> 
    </category> 
    <category id="Category2_of_section2" name="webcare"> 
    <arti name="param3">value4</arti> 
    </category> 
</section> 
</root> 
EOT; 

$dom = new DomDocument; 
$dom->preserveWhiteSpace = FALSE; 
$dom->loadXML($xml); 

$params = $dom->getElementsByTagName('section'); // Find Sections 
$k=0; 
$numero2=0; 
$roomStr3=""; 
foreach ($params as $param) 
{ 
     echo "Section Attribute :-> ".$params->item($k)->getAttribute('name')."<br>"; 
     $params2 = $params->item($k)->getElementsByTagName('category'); 
     $i=0; 
     foreach ($params2 as $p) 
     { 
      echo "&nbsp;&nbsp;- Category Attribute Name :-> ".$params2->item($i)->getAttribute('name')."<br>"; 
      $params3 = $params2->item($i)->getElementsByTagName('arti'); 
       $j=0; 

        foreach ($params3 as $p2) 
        { 

        echo "&nbsp;&nbsp;&nbsp;- Article Attribute Name : ".$params3->item($j)->getAttribute('name').""; 
        echo "&nbsp;&nbsp; Value : ".$params3->item($j)->nodeValue."<br>"; 

        var_dump($params3->item($j)); 
        $elems3 = $params3->item($j)->getElementsByTagName('sref'); 

        $j++; 
        } 
     $i++; 
     } 
$k++; 
} 
//Print 
    Section Attribute :-> Section2 
     - Category Attribute Name :-> msn 
     - Article Attribute Name : article2 Value : value1 
     - Article Attribute Name : article3 Value : value2 value6 value7 
     - Article Attribute Name : article4 Value : value3 value8 
     - Category Attribute Name :-> webcare 
     - Article Attribute Name : param3 Value : value 

如何顯示ref?

例:

  • 商品屬性名稱:第三條值:值2 REF = 「第六條」: value6 REF = 「第七條」: value7

  • 商品屬性名稱:第四條價值:value3 ref =「article8」: value8

+0

可以爲您的代碼,減少對相關部分,並試圖解釋更好的你意思是「我如何顯示參考」的上下文標題「分配一個空標籤文本XML XML」 – Gordon

回答

0

那麼,你需要getAttribute這樣做。

您已經使用過了:

echo "&nbsp;&nbsp;&nbsp;- Article Attribute Name : ".$params3->item($j)->getAttribute('name').""; 

只是做了<sref> - 元素相同:

$elems3 = $params3->item($j)->getElementsByTagName('sref'); 
$elems3Attribute = $elems3->getAttribute('ref');