我有一个像这样的XML文件:
<site>
<pages>
<page number="1">main page</page>
<page number="2">about</page>
<page number="3">contacts</page>
</pages>
</site>
我需要以type : number : value
格式打印3个参数。
我的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标记的“number”属性?
答案 0 :(得分:2)
要调试它,您只需将print_r( $val );
添加到foreach循环中即可。您会看到attributes
中有一个$val
数组,其中包含数字。因此,将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位。