我尝试使用PHP for,我对它很陌生.我有一个xml文件存储在一个名为的变量中$xmlroot.在这里你可以看到我的代码:
<?php
$xmlroot = $_POST['xmldata'];
//echo "Your data is: " . $xmlroot;
$doc = new DOMDocument;
$doc->loadXML($xmlroot);
for($i = 0; $i < count($xmlroot); $i++){
echo $doc->getElementsByTagName('postalcode')->item($i)->nodeValue;
}
?>
Run Code Online (Sandbox Code Playgroud)
但它只是向我展示了第一个XML tag.它应该显示所有称为"邮政编码"的标签.我的XML文件看起来像这样:
<root>
<code>
<postalcode>12345</postalcode>
<name>Test1</name>
</code>
<code>
<postalcode>67890</postalcode>
<name>Test2</name>
</code>
<code>
<postalcode>13579</postalcode>
<name>Test3</name>
</code>
<code>
<postalcode>02468</postalcode>
<name>Test1</name>
</code>
</root>
Run Code Online (Sandbox Code Playgroud)
它应该显示4个元素,但它只显示1.任何建议?
谢谢!
那是因为count($xmlroot)等于1.如果您要使用for循环,则需要使用该length属性来检索元素的数量.
但是,foreach循环更容易:
$xmlroot = file_get_contents('file.html');
$doc = new DOMDocument;
$doc->loadXML($xmlroot);
foreach ($doc->getElementsByTagName('postalcode') as $postalcode) {
echo $postalcode->nodeValue . '<br/>';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |