gpt4 book ai didi

xml - kml 默认命名空间与数据集默认命名空间冲突

转载 作者:行者123 更新时间:2023-12-04 17:06:35 25 4
gpt4 key购买 nike

我有一个澳大利亚厕所列表,我想使用 xQuery 将其映射到 GE 上以转换为 KML 文档。我使用的数据集的默认命名空间为 xmlns="http://toiletmap.gov.au/"。

当我进行 xQuery 传输时,我能够根据需要提取坐标/名称/描述。但该文档不是有效的 KML 文档,因为我还没有使用 xmlns="http://earth.google.com/kml/2.1"的 kml 默认命名空间。

我应该如何合并两个命名空间?如果我省略了 namespace ,则 xQuery 转换为空白并且无法提取所需的数据。

我想过添加一个前缀,如 xmlns:au="http://toiletmap.gov.au/"。但这并没有帮助,即使我将 {data($x/Name)} 元素命名为这样。

请让我知道我做错了什么,我觉得我还没有完全掌握命名空间如何工作的想法。

这是 xQuery:

<kml xmlns="http://toiletmap.gov.au/">
<Document>
<Folder>
{
let $doc := doc("ToiletmapExport_180801_090000.xml")
for $x in $doc/ToiletMapExport/ToiletDetails
where $x/@Latitude <= (-34.74526121+0.25)
and $x/@Latitude >= (-34.74526121-0.25)
and $x/@Longitude >= (146.5505775-0.25)
and $x/@Longitude <= (146.5505775+0.25)
return if (($x/AccessibilityDetails/AccessibleMale='true'
and $x/AccessibilityDetails/AccessibleFemale='true')
or $x/AccessibilityDetails/AccessibleUnisex='true')
then
<Placemark>
<name >{data($x/Name)}</name>
<description>FacilityType: {data($x/GeneralDetails/FacilityType)}<br></br>
Town: {data($x/Town)}<br></br>
Male: {data($x/AccessibilityDetails/AccessibleMale)} Female: {data($x/AccessibilityDetails/AccessibleFemale)}<br></br>
Unisex: {data($x/AccessibilityDetails/AccessibleUnisex)}
</description>
<Point>
<coordinates>{data($x/@Longitude)},{data($x/@Latitude)}</coordinates>
</Point>
</Placemark>
else ()
}
</Folder>
</Document>

最佳答案

您还没有真正显示输入示例,但是在使用 XPath 和 XQuery 时,用于选择命名空间中节点的任何路径表达式不必使用相同的前缀或默认命名空间(即无前缀)来从某个命名空间中选择节点,重要的是为正确的命名空间声明一个特定的前缀,例如declare namespace toi = "http://toiletmap.gov.au/";然后使用该前缀,例如$doc/au:ToiletMapExport/au:ToiletDetails在您要从该命名空间中选择输入的所有路径表达式中。对于输出,您可以设置 KML 命名空间。

关于xml - kml 默认命名空间与数据集默认命名空间冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53138788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com