簡體   English   中英

從 powershell 讀取 KML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM