【问题标题】:Get xml value based on another value in javascript根据javascript中的另一个值获取xml值
【发布时间】:2016-11-22 10:49:19
【问题描述】:

我有一些看起来像这样的 gml:

<gml:featureMember>
    <a:location>ABCD</a:location>
    <a:ElevatedPoint>
        <gml:pos>44.0 1.2</gml:pos>
        <a:elevation uom="FT">23</a:elevation>
    </a:ElevatedPoint>
</gml:featureMember>
<gml:featureMember>
    <a:location>EFJH</a:location>
    <a:ElevatedPoint>
        <gml:pos>33.3 -6.9</gml:pos>
        <a:elevation uom="FT">244</a:elevation>
    </a:ElevatedPoint>
</gml:featureMember>

我想根据a:location 的值获取gml:pos。例如,我想要与位置ABCD 相关的位置。我猜使用 xpath 是前进的方向,但不确定从哪里开始。

任何帮助表示赞赏。如果您需要更多信息,请告诉我。

更新

这是我到目前为止所做的:

var positions = document.evaluate("/featureMember/location[ABCD]/ElevatedPoint/pos", xml, null, XPathResult.ANY_TYPE, null);

【问题讨论】:

  • 如果没有命名空间问题,Xpath 应该是/featureMember/location[.="ABCD"]/following-sibling::ElevatedPoint/pos
  • /featureMember[location[.="ABCD"]]/ElevatedPoint/pos
  • 谢谢。关于命名空间的任何想法?
  • 我无法在 js 中使用 xml :(

标签: javascript xml xpath gml


【解决方案1】:

从未在 gml 上使用过 Xpath,但我会这样做:

/featureMember/location[desired_value]/ElevatedPoint/pos

请记住,这是 XML xpath 语法,我不知道它必须如何查找 GML,这将返回具有正确位置的节点的所有位置。

【讨论】:

  • 我试过这个,但我认为命名空间是个问题。我已经在上面进行了更新,以显示到目前为止我所拥有的。
  • stackoverflow.com/a/8181480/2102710 试试看,这是命名空间的一种解决方法...
猜你喜欢
  • 2018-06-04
  • 2017-08-03
  • 1970-01-01
  • 2020-07-10
  • 2021-02-23
  • 2013-05-26
  • 2015-12-02
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多