javascript - 获取类型而不是节点的标记 (XML/XPath)
问题描述
我有这个 XML 数据库:
<database>
<event>
<location> abc </location>
</event>
<event>
<location> abc </location>
</event>
<event>
<location> abc </location>
</event>
<event>
<location> def </location>
</event>
<event>
<location> def </location>
</event>
<database>
我试图用 XPath 得到这个输出:
abc
def
位置节点的类型。
如果我使用
//location
输出将是令牌:
abc
abc
abc
def
def
这甚至可以用 XPath 实现吗?我试过了,但没有找到任何解决方案。
解决方案
可以使用以下表达式在严格的 XPath 1.0 中进行分组:
/database
/event
/location[
not(. = ../preceding-sibling::event/location)
]
注意:这具有二次复杂度。在小型文档中,您不必担心。
推荐阅读
- javascript - 如何播放对话流的输出音频(int数组)
- php - EAV(实体-属性-值)数据建模/自定义数据库字段
- mysql - Mysql - 按两列排序,但有一个条件
- ruby - 如何在循环中放回输出令牌 - Ruby Pagination?
- node.js - 如何在没有逗号的情况下将缓冲区写入文件?(节点)
- c# - 反射:检查 Type 是否满足 new() 约束
- c++11 - 为什么编译器抱怨可以静态排除的路径(见下面的代码)?
- unity3d - 有什么办法可以在 Unity 中使用 SteamVR 摆脱屏幕镜像?
- reporting-services - 数据库表值/字符串更改时如何更新 SSRS 文本框
- c# - 无法为桌面桥应用程序、UWP 的 Windows 打包项目创建 bundle.appxupload 文件