[英]Read KML from powershell
我有 kml (xml)。 我想閱讀它並進一步處理它。 例子:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document><Placemark>
<Point>
<coordinates> 30.142550,49.797350,0 </coordinates>
</Point>
</Placemark><Placemark>
<Point>
<coordinates> 30.142533,49.797333,0 </coordinates>
</Point>
</Placemark><Placemark>
<Point>
<coordinates> 30.142517,49.797283,0 </coordinates>
</Point>
</Placemark></Document>
</kml>
我正在嘗試閱讀它:
Select-Xml -Path $Path -XPath $Xpath -Namespace $XmlNamespace | Select-Object -ExpandProperty Node
$Path = "D:\temp\test\4.kml"
$xpath = "kml/Document/Placemark/Point"
$XmlNamespace = @{ default = '"http://www.opengis.net/kml/2.2"'; };
Select-Xml -Path $Path -XPath $Xpath -Namespace $XmlNamespace | Select-Object -ExpandProperty Node
但是沒有結果……為什么?
由於您使用的是默認命名空間並選擇為其命名(默認),因此您需要為所有節點添加該名稱的前綴。 此外,您的命名空間定義不需要包含文字引號。
$Path = "D:\temp\test\4.kml"
$xpath = "default:kml/default:Document/default:Placemark/default:Point"
$XmlNamespace = @{ default = "http://www.opengis.net/kml/2.2"}
Select-Xml -Path $Path -XPath $Xpath -Namespace $XmlNamespace |
Select-Object -ExpandProperty Node
從Select-Xml 中, -Namespace
的描述如下:
當 XML 使用以 xmlns 開頭的默認名稱空間時,請為名稱空間名稱使用任意鍵。 您不能使用 xmlns。 在 XPath 語句中,使用命名空間名稱和冒號作為每個節點名稱的前綴,例如 //namespaceName:Node。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.