获取特定类型SimpleXML的所有后代

时间:2016-06-20 21:01:50

标签: php xml simplexml

假设我有一个XML,其中我尝试提取的信息位于层次结构的不同级别:

<people>
    <person>
        <info/>
    </person>
    <person>
        <info/>
    </person>
    <info/>
</people>

我希望得到人员树中所有级别的每个信息位,我不知道某个分支可能有多深。

有没有办法让某个类型的每个后代?

1 个答案:

答案 0 :(得分:1)

查看xpath查询;你应该能够通过people//person之类的东西来实现这一目标。这是一个粗略的例子:

$doc = new DOMDocument();
$doc->loadHTMLFile("people.xml");
$xpath = new DOMXpath($doc);

// Look for all person elements that are decendents of people
$elements = $xpath->query("people//person");

可能的查询列表:http://www.w3schools.com/xsl/xpath_syntax.asp