2012-10-04 62 views
0

如何我讀出了PROP的 我可以讀取PVAL的使用下面的腳本..PHP的XML獲取「名稱」值

<?xml version='1.0'?> 
<RECORDS> 
<RECORD> 
<PROP NAME="Product"> 
    <PVAL><![CDATA[Produkt1]]></PVAL> 
</PROP> 
<PROP NAME="Value"> 
    <PVAL><![CDATA[10]]></PVAL> 
</PROP> 
<PROP NAME="Status"> 
    <PVAL><![CDATA[Active]]></PVAL> 
</PROP> 
</RECORD> 
<RECORD> 
<PROP NAME="Product"> 
    <PVAL><![CDATA[Produkt2]]></PVAL> 
</PROP> 
<PROP NAME="Value"> 
    <PVAL><![CDATA[20]]></PVAL> 
</PROP> 
<PROP NAME="Status"> 
    <PVAL><![CDATA[Active]]></PVAL> 
</PROP> 
</RECORD> 
<RECORD> 
<PROP NAME="Product"> 
    <PVAL><![CDATA[Produkt3]]></PVAL> 
</PROP> 
<PROP NAME="Value"> 
    <PVAL><![CDATA[30]]></PVAL> 
</PROP> 
<PROP NAME="Status"> 
    <PVAL><![CDATA[Active]]></PVAL> 
</PROP> 
</RECORD> 

「名稱」值,使用下面的腳本,我可以得到PVAL的。 但我想獲得名稱值,我試過 $ strvalue = $ node-> PROP [6] - > NAME;沒有運氣...

<?php 
$z = new XMLReader; 
$z->open('products.xml'); 

$doc = new DOMDocument; 

// move to the first <product /> node 
while ($z->read() && $z->name !== 'RECORD'); 

// now that we're at the right depth, hop to the next <product/> until the end of the tree 
while ($z->name === 'RECORD') 
{ 

$node = simplexml_import_dom($doc->importNode($z->expand(), true)); 


$strvalue = $node->PROP[6]->PVAL; 
echo $strvalue."<p>" ; 

// go to next <product /> 
$z->next('RECORD'); 
} 
?> 

回答

1

這裏有一個建議:使用SimpleXMLElement($xml_string)這需要一個XML字符串作爲輸入,並返回一個PHP對象,你可以更輕鬆地工作。然後,你可以做的得心應手的東西,如:

$php_object = SimpleXMLElement($xml_string); 
var_dump($php_object); 
exit; 

,這將讓你看看你的對象的結構,並決定如何最好地訪問它。祝你好運。

+0

感謝:-) 但我仍然不確定如何讀出「名稱」值(我不是很有經驗的XML)。 類似於$ strValue = $ php_object->名稱 –

+0

明白了$ node-> PROP [0] - > attributes() –