【问题标题】:How to extract values for nested tag in an XML with namespaces?如何在带有命名空间的 XML 中提取嵌套标签的值?
【发布时间】:2014-08-08 21:25:43
【问题描述】:

我正在使用 JQuery 解析和 XML。这是一个示例...

<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
 xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
 xmlns:wfs="http://www.opengis.net/wfs"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd 
                   http://mapserver.gis.umn.edu/mapserver http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Numeri_Civici_2012.map&amp;SERVICE=WFS&amp;VERSION=1.0.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=IN.NUMERICIVICI.2012&amp;OUTPUTFORMAT=XMLSCHEMA">
  <gml:boundedBy>
    <gml:Box srsName="EPSG:4326">
        <gml:coordinates>7.700007,44.802147 7.749396,44.849996</gml:coordinates>
    </gml:Box>
  </gml:boundedBy>
<gml:featureMember>
  <ms:IN.NUMERICIVICI.2012 fid="IN.NUMERICIVICI.2012.2728384">
    <gml:boundedBy>
        <gml:Box srsName="EPSG:4326">
            <gml:coordinates>7.735138,44.810267 7.735138,44.810267</gml:coordinates>
        </gml:Box>
    </gml:boundedBy>
    <ms:boundary>
    <gml:Point srsName="EPSG:4326">
      <gml:coordinates>7.735138,44.810267</gml:coordinates>
    </gml:Point>
    </ms:boundary>
    <ms:id>13800026457291</ms:id>
    <ms:nome>Borgata Tetti Sotto</ms:nome>
    <ms:civico>16</ms:civico>
    <ms:istat>01004041</ms:istat>
    <ms:cap>12030</ms:cap>
    <ms:comune>CARAMAGNA PIEMONTE</ms:comune>
    <ms:nome_ted> </ms:nome_ted>
    <ms:provincia>CUNEO</ms:provincia>
    <ms:regione>PIEMONTE</ms:regione>
  </ms:IN.NUMERICIVICI.2012>
</gml:featureMember>
<gml:featureMember>
  <ms:IN.NUMERICIVICI.2012 fid="IN.NUMERICIVICI.2012.2736621">
    <gml:boundedBy>
        <gml:Box srsName="EPSG:4326">
            <gml:coordinates>7.735397,44.812403 7.735397,44.812403</gml:coordinates>
        </gml:Box>
    </gml:boundedBy>
    <ms:boundary>
    <gml:Point srsName="EPSG:4326">
      <gml:coordinates>7.735397,44.812403</gml:coordinates>
    </gml:Point>
    </ms:boundary>
    <ms:id>13800026457290</ms:id>
    <ms:nome>Borgata Tetti Sotto</ms:nome>
    <ms:civico>25</ms:civico>
    <ms:istat>01004041</ms:istat>
    <ms:cap>12030</ms:cap>
    <ms:comune>CARAMAGNA PIEMONTE</ms:comune>
    <ms:nome_ted> </ms:nome_ted>
    <ms:provincia>CUNEO</ms:provincia>
    <ms:regione>PIEMONTE</ms:regione>
  </ms:IN.NUMERICIVICI.2012>
</gml:featureMember>

我正在使用这种表示法来提取标签值

$this.find('ms\\:nome, nome').text()

一切正常。

我不知道如何提取嵌套在 Point 标签下的标签 coordinates 的值

    <gml:Point srsName="EPSG:4326">
      <gml:coordinates>7.735397,44.812403</gml:coordinates>
    </gml:Point>

有什么建议吗?

非常感谢!!

切萨雷

【问题讨论】:

    标签: jquery ajax xml-parsing


    【解决方案1】:

    会做这样的事情吗?

     $xml.find('gml:Point').each(function () {
         $this.find('gml:coordinates').text()
     });
    

    然后您可以将该数据插入到变量中或显示在表格中

    【讨论】:

      【解决方案2】:

      我已经用这种方式解决了……

      $this.find('gml\\:Point, Point').find('gml\\:coordinates, coordinates').text()
      

      它正在工作

      【讨论】:

        猜你喜欢
        • 2021-09-10
        • 1970-01-01
        • 2020-06-23
        • 1970-01-01
        • 2015-07-18
        • 2011-08-19
        • 2014-09-27
        • 2011-02-20
        • 2012-04-28
        相关资源
        最近更新 更多