使用PHP获取xml中的子元素
我有一个xml文件需要解析并获取值。下面是一小段xml使用PHP获取xml中的子元素,php,xml,Php,Xml,我有一个xml文件需要解析并获取值。下面是一小段xml <?xml version="1.0"?> <mobile> <userInfo> </userInfo> <CATALOG> <s0> <SUB0> <DESCR>Paranormal Studies</DESCR> <SUBJECT>147<
<?xml version="1.0"?>
<mobile>
<userInfo>
</userInfo>
<CATALOG>
<s0>
<SUB0>
<DESCR>Paranormal Studies</DESCR>
<SUBJECT>147</SUBJECT>
</SUB0>
</s0>
<sA>
<SUB0>
<DESCR>Accounting</DESCR>
<SUBJECT>ACCT</SUBJECT>
</SUB0>
<SUB1>
<DESCR>Accounting</DESCR>
<SUBJECT>ACCTG</SUBJECT>
</SUB1>
<SUB2>
<DESCR>Anatomy</DESCR>
<SUBJECT>ANATOMY</SUBJECT>
</SUB2>
<SUB3>
<DESCR>Anthropology</DESCR>
<SUBJECT>ANTHRO</SUBJECT>
</SUB3>
<SUB4>
<DESCR>Art</DESCR>
<SUBJECT>ART</SUBJECT>
</SUB4>
<SUB5>
<DESCR>Art History</DESCR>
<SUBJECT>ARTHIST</SUBJECT>
</SUB5>
</sA>
超自然研究
147
会计
会计科目
会计
ACCTG
解剖
解剖
人类学
炭疽
艺术
艺术
艺术史
亚瑟王
因此,我需要获取
的所有子元素,然后还有更多名为
的元素
但是我不知道如何使用
,
等获取所有子元素。您应该研究一下,因为我很确定这会让您的生活轻松得多。它返回一个StdObject,您可以像这样使用它:
$xml = simplexml_load_string(<your huge xml string>);
foreach ($xml->hpt_mobile->CATALOG->sA as $value){
// do things with sA children
}
$xml=simplexml\u load\u string();
foreach($xml->hpt\u mobile->CATALOG->sA as$value){
//和孩子们一起做事
}
这个怎么样:
$xmlstr = LoadTheXMLFromSomewhere();
$xml = new simplexml_load_string($xmlstr);
$result = $xml->xpath('//sA');
foreach ($result as $node){
//do something with node
}
PHP确实有一个很好的类来访问XML,这是有原因的,如果您的代码只访问XML的一部分(AQA查询XML),请考虑大量使用。此外,考虑使用查询,这是最好的方法
请注意,我只对sA节点进行了示例,但是您可以非常轻松地为其他节点类型配置代码 希望我能帮忙 我认为这是一个更好的选择。$xml = new DOMDocument();
$xml->load('path_to_xml');
$htp = $xml->getElementsByTagName('hpt_mobile')[0];
$catalog = $htp->getElementsByTagName('CATALOG')[0]
$nodes = $catalog->getElementsByTagName('sA')->childNodes;