我有一个XML文件,如下所示:
<site>
<pages>
<page number="1">main page</page>
<page number="2">about</page>
<page number="3">contacts</page>
</pages>
</site>
我需要打印3个参数,格式为type : number : value
。
我的PHP代码如下:
$xml = file_get_contents('file.xml');
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
foreach ($vals as $val) {
print(" {$val["type"]} : {$val["number"]} : {$val["value"]}<br><br>'n");
}
这会打印类型和值,但不会打印数字。如何打印XML标记的"数字"属性?
要调试它,只需将print_r( $val );
添加到foreach循环中即可。您将看到,在$val
中有一个attributes
数组,其中包含数字。因此,将foreach循环更改为类似以下内容:
foreach ($vals as $val) {
if ( 'PAGE' !== $val['tag'] ) {
continue;
}
print(" {$val['type']} : {$val['attributes']['NUMBER']} : {$val['value']}<br><br>'n");
}
然后你应该拥有它。虽然,我不确定你是否想要$val['type']
,但你可能想要$val['tag']
。$val['type']
将是open
、closed
或complete
,这将标记称为正在解析的标记。$val['tag']
将是SITE
、PAGES
或PAGE
,带有您在文章中引用的xml位。