XML解析,遍历所有节点

Mybeautiful 2012-07-29 03:04:51
比如有一个XML字符串 "<Address><to>James</to><from>Jani</form><heading>Reminder</heading></Address>", 我想用一段php处理后输出,

Address
to:James
from:Jani
heading:Reminder

注意,由于Address包含子节点,故它的值为空。

方法不限,请大侠赐教一二。
...全文
203 点赞 收藏 9
写回复
9 条回复
浮华out 2012年07月30日
xmlparse(xml与PHP数组相互转换)封装函数

include (dirname(__FILE__) . "/xmlparse.php");
#此处添加重复标签
//$listtags = explode(" ", "Address ");
$xml = <<<XML
<XML>
<Address>
<to>James</to>
<from>Jani</from>
<heading>Reminder</heading>
</Address>
</XML>
XML;
#将xml转换为数组
$tmparr = parse_xml_config($xml, "xml");
print_r($tmparr);
#Array ( [address] => Array ( [to] => James [from] => Jani [heading] => Reminder ) [encoding] => UTF-8 )
#将数组转换为xml
$tmpxml = dump_xml_config($tmparr, "xml", "utf-8");
echo "tmpxml-->>:<br>".$tmpxml;
#源码:
<?xml version="1.0" encoding="utf-8"?>
<xml>
<address>
<to>James</to>
<from>Jani</from>
<heading>Reminder</heading>
</address>
</xml>
回复 点赞
amani11 2012年07月30日
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:

simplexml_load_string 解析出来就好了,格式要标准


不能打印根几点 Address啊。
[/Quote]

那你何不外面加一层呢?去分析"<t>your string……</t>",

你会得到如下对象

SimpleXMLElement Object
(
[Address] => SimpleXMLElement Object
(
[to] => James
[from] => Jani
[heading] => Reminder
)

)
回复 点赞
katelyn 2012年07月30日
如果你需要显示最外层的字段,推荐8楼的回复
回复 点赞
qq120848369 2012年07月29日
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

domDocument

用getElementByTagName找到所有的address,遍历一遍即可。

谢谢回复,根节点是不确定的;上面的只是个例子。入门选手,多多指教。
[/Quote]

什么叫根节点不确定?
回复 点赞
Mybeautiful 2012年07月29日
[Quote=引用 4 楼 的回复:]

domDocument

用getElementByTagName找到所有的address,遍历一遍即可。
[/Quote]
谢谢回复,根节点是不确定的;上面的只是个例子。入门选手,多多指教。
回复 点赞
qq120848369 2012年07月29日
domDocument

用getElementByTagName找到所有的address,遍历一遍即可。
回复 点赞
Mybeautiful 2012年07月29日
[Quote=引用 1 楼 的回复:]

simplexml_load_string 解析出来就好了,格式要标准
[/Quote]

不能打印根几点 Address啊。
回复 点赞
一起混吧 2012年07月29日
$s='<Address><to>James</to><from>Jani</from><heading>Reminder</heading></Address>';
$xml = simplexml_load_string($s);
print_r((array)$xml);

Array
(
[to] => James
[from] => Jani
[heading] => Reminder
)

回复 点赞
amani11 2012年07月29日
simplexml_load_string 解析出来就好了,格式要标准
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9734

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告