这是我第一次使用SimpleXMLobject,所以我有一个XMLstring,看起来像这样:
"<Body><SoapResponse><response><code>0</code><message>Success</message><id>123</id></response><details><a>123</a><b>ABC</c><d>1</d><e>XYZ</e><f>df</f><g>1</g><h>10</h></details><secondarydetails><box1><boxname>wer</boxname><date>2013-11-29</date><expirydate>2013-12-29</expirydate><flag>S</flag></box1><box2><boxname>pos</boxname><date>2013-11-29</date><expirydate>2013-12-29</expirydate><flag>E</flag></SoapResponse></Body>"
我正在尝试解析并将其转换为html格式,最好是html表格,但我发现只有以下代码:
<pre><code>$xml = simplexml_load_string($soapresponse);
function writeList($items){
if($items === null)
return;
echo '<ul>';
foreach($items as $item => $children){
echo '<li>'.$item;
writeList($children);
echo '</li>';
}
echo '</ul>';
writeList($xml);</code></pre>
但是显示的html只是标签,没有像这样的值:
有人可以帮忙解决这个问题吗?如果我能以表格形式提供它会很棒,非常感谢你的支持。
答案 0 :(得分:0)
当你致电
时$xml = simplexml_load_string($soapresponse);
然后返回一个simpleXMLElement。如此处的PHP文档中所示:
http://www.php.net/manual/en/class.simplexmlelement.php
这可能会让你更近一点:
$xml = simplexml_load_string($soapresponse);
// You need to build the table wrapper first
echo '<table>';
// The recursive function
function writeList($items){
if($items === null)
return;
echo '<tr>';
foreach($items->children() as $i => $child){
echo '<td>', $child->getName(), '</td><td>', (string)$child, '</td>';
writeList($child);
}
echo '</tr>';
}
writeList($xml);
echo '</table>';
它会像这样生成一个表:
response code 0 message Success id 123 details a 123 b ABC d 1 e XYZ f df g 1 h 10 secondarydetails box1 boxname wer date 2013-11-29 expirydate 2013-12-29 flag S box2 boxname pos date 2013-11-29 expirydate 2013-12-29 flag E
答案 1 :(得分:0)
在您的XML字符串中,错过了开始和结束标记,并且要将xml解析为HTML,您可以使用SimpleXMLElement。它将xml转换为html,如下面的代码。
<?php
$news=new SimpleXMLElement('
<Body><SoapResponse><response><code>0</code><message>Success</message><id>123</id></response><details><a href="#">123</a><b>ABC</b><d>1</d><e>XYZ</e><f>df</f><g>1</g><h>10</h></details><secondarydetails><box1><boxname>wer</boxname><date>2013-11-29</date><expirydate>2013-12-29</expirydate><flag>S</flag></box1><box2><boxname>pos</boxname><date>2013-11-29</date><expirydate>2013-12-29</expirydate><flag>E</flag></box2></secondarydetails></SoapResponse></Body>');
print_r($news);
?>
有关详细信息,请参阅simplexmlelement