2017-07-06 90 views
1

如何獲取XML的內容作爲字符串? 我有這樣一個xml:PHP獲取XML rootNode內容爲字符串

<?xml version="1.0" encoding="utf-8"?> 
<section> 
    <paragraph>some content</paragraph> 
    <custom>some more content</custom> 
</section> 

,我想部分的內容,像這樣的字符串:

<paragraph>some content</paragraph> 
    <custom>some more content</custom> 

每個文檔我讀到目前爲止只介紹瞭如何獲取的內容子節點但不是根節點。

回答

0

它可以使用DOM文檔(按here看到它在行動)

$xmlStr = '<?xml version="1.0" encoding="utf-8"?> 
<section> 
    <paragraph>some content</paragraph> 
    <custom>some more content</custom> 
</section> 
'; 

$xml = new DOMDocument(); 
$xml->loadXML($xmlStr); 
if($xml->childNodes->length > 0) { 
    foreach($xml->childNodes->item(0)->childNodes as $rootChildNode){ 
     echo $xml->saveXML($rootChildNode); 
    } 
} 
+0

好吧,我不得不重複槽的childNodes,我希望有實現的一些方法一次獲取內容。 thx – Camel

+0

嗨駱駝。感謝您接受我的回答。我認爲沒有迭代就沒有這樣的方式。看看https://stackoverflow.com/questions/2087103/how-to-get-innerhtml-of-domnode – Dorad

0

您可以使用xml解析器創建數組並使用它。例如:

<?php 
$xml = <<<XML 
<?xml version="1.0" encoding="utf-8"?> 
<section> 
    <paragraph>some content</paragraph> 
    <custom>some more content</custom> 
</section> 
XML; 

$values = []; 
$p = xml_parser_create(); 
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0); 
xml_parse_into_struct($p, $xml, $values); 
xml_parser_free($p); 

var_dump($values); 

http://php.net/manual/en/ref.xml.php