XPath 1.0,子树中的第一个节点
XPath 1.0, 1st node in subtree
所以我想做的是识别 xml 树的某个子树中的第一个节点。
这里有一个例子
<?xml version="1.0" encoding="utf-8"?>
<root>
<road>
<households>
<household>
<occupants>
<person name="jim"/>
<person name="jon"/>
<person name="julie"/>
<person name="janet"/>
</occupants>
</household>
<household>
<occupants>
<person name="brenda"/>
<person name="bert"/>
<person name="billy"/>
</occupants>
</household>
</households>
</road>
<road>
<households>
<household>
<occupants>
</occupants>
</household>
<household>
<occupants>
<person name="arthur"/>
<person name="aimy"/>
</occupants>
</household>
<household>
<occupants>
<person name="harry"/>
<person name="henry"/>
</occupants>
</household>
</households>
</road>
</root>
现在我想要每条道路提到的第一个人。
让我们开始吧...
/root/road/households/household/occupants/person[1]/@name
即 returns 每个占用节点的第一个人。
让我们试试
(/root/road/households/household/occupants/person)[1]/@name
那个returns整棵树的第1个人
我想做的是?
/root/road/(households/household/occupants/person)[1]/@name
即在路上取人集合中的第一个人
但这不是有效的 xpath 1.0
这似乎是你想要的,使用后代轴:
/root/road/descendant::person[1]/@name
所以我想做的是识别 xml 树的某个子树中的第一个节点。
这里有一个例子
<?xml version="1.0" encoding="utf-8"?>
<root>
<road>
<households>
<household>
<occupants>
<person name="jim"/>
<person name="jon"/>
<person name="julie"/>
<person name="janet"/>
</occupants>
</household>
<household>
<occupants>
<person name="brenda"/>
<person name="bert"/>
<person name="billy"/>
</occupants>
</household>
</households>
</road>
<road>
<households>
<household>
<occupants>
</occupants>
</household>
<household>
<occupants>
<person name="arthur"/>
<person name="aimy"/>
</occupants>
</household>
<household>
<occupants>
<person name="harry"/>
<person name="henry"/>
</occupants>
</household>
</households>
</road>
</root>
现在我想要每条道路提到的第一个人。
让我们开始吧...
/root/road/households/household/occupants/person[1]/@name
即 returns 每个占用节点的第一个人。
让我们试试
(/root/road/households/household/occupants/person)[1]/@name
那个returns整棵树的第1个人
我想做的是?
/root/road/(households/household/occupants/person)[1]/@name
即在路上取人集合中的第一个人
但这不是有效的 xpath 1.0
这似乎是你想要的,使用后代轴:
/root/road/descendant::person[1]/@name