2013-10-15 73 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');'只显示文本内容而不用任何格式。干杯:) –

相关问题