java - 如何链接两个不同的元素

标签 java dom xpath sax

在下面发布的 xml 文件中,元素“tag”包含速度信息。我面临的问题是,前两个元素“节点”

<node id="25779111" lat="53.0334062" lon="8.8461545"/>
<node id="25779112" lat="53.0338904" lon="8.846314"/>

他们的速度信息包含在紧接着的两个元素“标签”中

<tag k="maxspeed" v="30"/>  
<tag k="maxspeed:zone" v="yes"/>

和第二个双元素“节点”:

<node id="25779114" lat="53.334062" lon="8.841545"/>
<node id="25779117" lat="53.038904" lon="8.84614"/>

他们的速度信息包含在紧接着的两个元素“标签”中

<tag k="maxspeed" v="32"/>  
<tag k="maxspeed:zone" v="yes"/>

我想做的是,给定“lat”属性的信息,应该返回速度信息。例如,如果输入是 lat="53.0334062"或 lat="53.0338904" 返回值应为 v="30"。如果输入是 lat="53.334062"或 lat="53.038904,则返回值应为 v="32"

我如何使用 xpath 实现它?

xml:

<?xml version='1.0' encoding='utf-8' ?>
<osm>
<node id="25779111" lat="53.0334062" lon="8.8461545"/>
<node id="25779112" lat="53.0338904" lon="8.846314"/>
<tag k="maxspeed" v="30"/>  
<tag k="maxspeed:zone" v="yes"/>
<node id="25779114" lat="53.334062" lon="8.841545"/>
<node id="25779117" lat="53.038904" lon="8.84614"/>
<tag k="maxspeed" v="32"/>  
<tag k="maxspeed:zone" v="yes"/>
</osm>

最佳答案

用这个

//node[@lat="53.0334062"]/following-sibling::tag[1]/@v

//node[@lat="**yourinput**"]/following-sibling::tag[1]/@v

解释:

node[@lat="53.0334062"]符合你的条件。然后,following-sibling获取节点元素中的所有子元素,在该元素中它将选择第一个 tag元素,实际上这是获取属性 'V' 所需的元素.

关于java - 如何链接两个不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31341371/

相关文章:

java - 用于从现有编辑器中删除验证的 Eclipse 插件

javascript - 在没有jquery的情况下在javascript中重新排序div

html - 使用 XPath 解析 HTML 中的数据(在 shell 脚本中)

xpath - 如何在VB6中将串联字符串评估为索引XPath表达式

python - 如何使用XPath选择样式不包含display的元素: none and exclude its child elements

java - 是否有一种轻量级的方法来获取上下文句柄以获取资源?

Java 帧处理会创建额外的空帧

java - RemoteMessageProto 类中缺少方法 getRequestBuilder

java - DOM 文档为空?

html - getBody() 如何在 Google App Script 中从 Gmail 工作?