【问题标题】:XPath for numeric latitude and longitude values in R?R中数字纬度和经度值的XPath?
【发布时间】:2020-11-11 16:15:50
【问题描述】:

我有一个带有测量值的 XML 文件。我想只选择那些使用 R 具有纬度和经度的measurementSiteName

使用此代码块,我可以选择具有特定纬度的站点名称:

doc <- xml2::read_xml('test.xml')
query <- ".//measurementSiteName/values/value[../../../measurementSiteLocation/locationForDisplay/latitude/text() = '52.23634']"
xml2::xml_text(xml2::xml_find_all(doc, query))

但是,有些站点名称没有纬度或经度。我不知道该怎么做。 经纬度节点可能缺失或为空。

有人可以帮帮我吗?请查找附件text.xml

<measurements>
  <measurement>
    <measurementSiteName>
      <values>
          <value>abc</value>
      </values>
    </measurementSiteName>
    <measurementSiteLocation>
      <locationForDisplay>
        <latitude>52.23634</latitude>
        <longitude>4.503404</longitude>
      </locationForDisplay>
    </measurementSiteLocation>
  </measurement>
  <measurement>
    <measurementSiteName>
      <values>
          <value>def</value>
      </values>
    </measurementSiteName>
    <measurementSiteLocation>
      <locationForDisplay>
        <latitude></latitude>
        <longitude></longitude>
      </locationForDisplay>
    </measurementSiteLocation>
  </measurement>
  <measurement>
    <measurementSiteName>
      <values>
          <value>ghi</value>
      </values>
    </measurementSiteName>
    <measurementSiteLocation>
      <locationForDisplay>
      </locationForDisplay>
    </measurementSiteLocation>
  </measurement>
</measurements>

【问题讨论】:

    标签: r xml xpath


    【解决方案1】:

    这个 XPath,

    //measurementSiteLocation
      [locationForDisplay[    number(latitude)  = number(latitude) 
                          and number(longitude) = number(longitude)]]
    

    将选择所有具有 locationForDisplay 子元素的 measurementSiteLocation 元素,该子元素具有带有数值的 latitudelongitude 子元素。

    参考资料:

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      相关资源
      最近更新 更多