2016-08-10 340 views
1

如何通過使用PowerShell從XML文件傳遞屬性名稱來獲取屬性值。例如,以下是XML文件內容通過從XML傳遞屬性名稱獲取屬性值

<?xml version="1.0" encoding="utf-8"?> 
<MyProject> 
    <!-- My Comment Here --> 
    <MyPropertyGroup> 
    <PropertyID>2</PropertyID> 
    <PropertyName>ItsMyName</PropertyName> 
    </MyPropertyGroup> 
    <MyPropertyGroup> 
    <MobileNo>3</MobileNo> 
    <NickName>ItsMyNickName</NickName> 
    </MyPropertyGroup> 
</MyProject> 

我試圖象下面這樣:

[xml]$file = Get-Content 'C:\Temp\MyTest.xml' 
$file.ChildNodes[1].GetElementsByTagName("PropertyName") 

但它返回的結果一樣:

#text 
----- 
ItsMyName

我想ItsMyName的結果存入變量。

回答

2

可以擴展屬性這樣

$file.ChildNodes[1].GetElementsByTagName("PropertyName")."#text" 

或者能夠接受您可以將其輸入到Select-Object這樣

$file.ChildNodes[1].GetElementsByTagName("PropertyName") | Select-Object -ExpandProperty "#text" 
1

您可以訪問樣性質的節點:

$file.MyProject.MyPropertyGroup[0].PropertyName 

輸出:

ItsMyName 
+0

我要傳遞的屬性名作爲參數,以獲得其價值 – Gobikannan

+1

'$ file.MyProject.MyPropertyGroup [0],$ param' –

+0

我想管道的結果像下面的一些其他變量 $ file.ChildNodes [1] .GetElementsByTagName( 「郵件合併-服務的名稱」)| Out-String – Gobikannan