[英]XML element name of an attribute using Powershell
我想使用powershell獲取屬性的xml元素名稱。 任何人都可以讓我知道我們是否具有內置功能。
以下是我的名為Pricefile.xml的xml文件
<model type="model1" name="default" price="12.12" date="some_value">
<PriceData>
<item name="watch" price="24.28" date="2013-12-01"/>
<item name="toy" price="22.34" date="2013-12-02"/>
<item name="bread" price="24.12" date="2013-12-03"/>
</PriceData>
</model>
假設我想獲取屬性“玩具”的元素名稱“項目”。 我如何獲得這些數據?
到目前為止,這就是我所擁有的。
[xml]$item = get-content pricefile.xml
$item.SelectNodes("//item") | where {$_.name -like "toy"}
這給了我下面的輸出,但是我不知道如何從這里或它的父節點獲取屬性的元素。
name price date
---- ----- ----
toy 22.34 2013-12-02
如果您想獲取父節點,可以嘗試以下方法: ($item.SelectNodes("//item") | where {$_.name -like "toy"}).ParentNode
如果您想訪問item
元素內的另一個屬性,則可以這樣進行: ($item.SelectNodes("//item") | where {$_.name -like "toy"}).price
您可以像這樣訪問XmlElement.Name
屬性屬性:
(($item.SelectNodes("//item")))[0].name
您可以從XmlElement.LocalName
屬性獲取它,例如:
λ $item = [xml]@"
>> <model type="model1" name="default" price="12.12" date="some_value">
>> <PriceData>
>> <item name="watch" price="24.28" date="2013-12-01"/>
>> <item name="toy" price="22.34" date="2013-12-02"/>
>> <item name="bread" price="24.12" date="2013-12-03"/>
>> </PriceData>
>> </model>
>> "@
λ $item.SelectNodes("//item") | where {$_.name -like "toy"} | select LocalName
LocalName
---------
item
λ $item.SelectNodes("//*[contains(@name,'toy')]") | select LocalName
LocalName
---------
item
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.