用PHP来获取xml中的子元素

问题描述

|| 我有一个XML文件,我需要解析并获取值。以下是xml的摘要
    <?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> 
因此,我需要获取
<sA>
的所有子元素,然后还有更多名为
<sB>
的元素,等等 但是我不知道如何用
<sA>
<sB>
等获取所有子元素。     

解决方法

        这个怎么样:
$xmlstr = LoadTheXMLFromSomewhere();

$xml = new simplexml_load_string($xmlstr);

$result = $xml->xpath(\'//sA\');

foreach ($result as $node){
  //do something with node
}
PHP确实有一个很好的类来访问XML,出于某种原因,该类称为SimpleXml,如果您的代码仅要访问XML的一部分(也可以查询xml),请考虑大量使用该类。另外,考虑使用XPath进行查询,这是最好的方法 注意,我仅使用sA节点进行了示例,但是您可以非常轻松地为其他节点类型配置代码。 希望我能帮忙!     ,        您应该研究simplexml_load_string(),因为我敢肯定它会让您的生活变得更加轻松。它返回一个StdObject,您可以像这样使用它:
$xml = simplexml_load_string(<your huge xml string>);
foreach ($xml->hpt_mobile->CATALOG->sA as $value){
    // do things with sA children 
}
    ,        
$xml = new DOMDocument();
        $xml->load(\'path_to_xml\');
$htp = $xml->getElementsByTagName(\'hpt_mobile\')[0];
$catalog = $htp->getElementsByTagName(\'CATALOG\')[0]
$nodes = $catalog->getElementsByTagName(\'sA\')->childNodes;
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...