我希望使用XML
在php
文件中提取叶节点的父节点:
<root>
<level name="level1">
<content name="c1/>
</level>
<level name="level2>
<level name="sub-level-2a">
<content name="c2" />
</level>
<level name="sub-level-2b">
<level name="sub-sub-level-2b">
<content name="c3" />
</level>
</level>
</level>
</root>
所以在上面的XML中,叶子可以是多个级别,所考虑的元素是:
<content name="c1" />
<content name="c2" />
<content name="c3" />`
如何提取上述每个叶子的name
属性&#39;父母和每片叶子的输出:<leaf-name-attribute> - <parent-name-attribute>
?
我试过了:
$content_node_parents = $xml->xpath('//content/parent::*');
foreach ($content_node_parents as $content_node_parent)
{
echo $content_node_parent['name']." - ".$content_node_parent->content['name']."\n";
}`
以上工作完全正常,但只提取了非<content>
元素,而且还提取了
答案 0 :(得分:0)
使用xpath选择所需的值
//*[*[not(descendant::*)]]/@name | //*[not(descendant::*)]/@name
返回
Attribute='name="level1"'
Attribute='name="c1"'
Attribute='name="sub-level-2a"'
Attribute='name="c2"'
Attribute='name="sub-sub-level-2b"'
Attribute='name="c3"'