我是XML和PHP的新手,我无法解析所有标签。我试着找一个解决方案,却找不到一个。
<?xml version="1.0" encoding="UTF-8"?>
<widgetlist>
<widget id='1'>
<content page='page1'>
<row type='header'>
<col>
<h1>Avinash</h1>
<h3>Second element</h3>
</col>
</row>
<row type='content'>
<col>
<p>Is a php programmer</p>
</col>
</row>
<row type='content'>
<col>
<h2>Heading 2</h2>
</col>
</row>
<row type='footer'>
<col>
<small>Thank You</small>
</col>
</row>
</content>
</widget>
PHP文件是 -
<?php
$xml = simplexml_load_file("product.xml");
$products = $xml->xpath("//*[@type]");
var_dump($products);
for($i=0;$i<count($products);$i++)
{
print_r($i);
$count = count($products[$i]->col);
print_r(" ".$count);
print_r("\n");
$col = (array)$products[$i]->col;
$tag = key((array)$products[$i]->col);
echo "<".$tag.">".$products[$i]->col->$tag."</".$tag.">";
}
?>
任何形式的帮助或指导都会对您有所帮助。谢谢。另外,如果可能的话,请帮我解决xml中的最佳实践,以便解析得到改善。
答案 0 :(得分:2)
关闭
标签 <widgetlist>
xml文件中缺少
答案 1 :(得分:0)
您缺少最终标记,widgetlist。另外,创建一个XSD文件并让PHP检查XML是否匹配可能是一个好主意。
这可以像这样实现
$request = new DOMDocument();
$request->loadXML($HTTP_RAW_POST_DATA, LIBXML_NOBLANKS);
if (!$request->schemaValidate('xml/Request.xsd'))
{
ErrorReply("InvalidRequest", "Schema validation returned false");
}