2013-10-15 99 views
0

我將按照here所述將XML轉換爲JSON。我需要將該方法傳遞給一個字符串,而我無法弄清楚如何將XPath結果轉換爲字符串。將XPath結果轉換爲字符串

我試圖提取特定父元素,[name=bar]的孩子,從被格式化像這樣的XML文件:

<items> 
     <item name="foo"> 
      <element>1</element> 
      <element> 
       <child>c1</child>   
      </element> 
      <element>2</element> 
     </item> 
     <item name="bar"> 
      <element>1</element> 
      <element> 
       <child>c1</child>   
      </element> 
      <element>2</element> 
     </item> 
    </items> 

我可以訪問節點我想:

$xmlfile = simplexml_load_file('xmlfile.xml'); 
    $item = $productsXml->xpath('//item[@name="bar"]'); // Returns an array 

我想將結果轉換爲字符串:

 <item name="bar"> 
      <element>1</element> 
      <element> 
       <child>c1</child>   
      </element> 
      <element>2</element> 
     </item> 

任何幫助將是一個ppreciated。

+0

也許你可以使用'破滅()'函數 http://php.net/manual/en/function.implode.php –

回答

1

你可以通過XPath的結果,然後用asXML()到節點保存到一個變量爲一個字符串循環:

$str = ''; // initializing empty string to append to 
$item = $xmlfile->xpath('//item[@name="bar"]'); 
while(list(,$node) = each($item)) { // getting each node 
    $str .= $node->asXML(); // save it to $str 
}  
echo $str; 

Demo!

+0

嗨,謝謝你。有趣的是,我注意到我曾經這樣做過,但沒有結果,所以我看不到它!大聲笑 – beingalex

+0

@beingalex:不客氣。只是一個旁註:你總是可以使用'header('Content-Type:text/plain');'只顯示文本內容而不用任何格式。乾杯:) –

相關問題