2016-11-23 61 views
0

我使用解析,我已經創建了一個XML文檔的數據的XML文檔持有SelectNode的價值,到目前爲止一切工作是這樣的:不能在一個變量從

$xdoc.SelectNodes("//key")[0] 
$xdoc.SelectNodes("//value")[0] 
$xdoc.SelectNodes("//key")[1] 
$xdoc.SelectNodes("//value")[1] 
$xdoc.SelectNodes("//key")[2] 
$xdoc.SelectNodes("//value")[2] 

所有這一切工作正常,但我想的值解析成這樣一個變量:如果我嘗試Write-Host $a1它不會顯示的值,我怎麼能得到的變量來保存該值然後

$a1 = $xdoc.SelectNodes("//key")[0] 
$a2 = $xdoc.SelectNodes("//value")[0] 
$b1 = $xdoc.SelectNodes("//key")[1] 
$b2 = $xdoc.SelectNodes("//value")[1] 
$c1 = $xdoc.SelectNodes("//key")[2] 
$c2 = $xdoc.SelectNodes("//value")[2] 

。我嘗試使用SelectSingleNode,但得到了相同的結果。我嘗試使用.InnerText,.InnerHtml,.Value所有這些將正確顯示,而不使用$變量,所以我怎麼能把信息保存在一個變量。

我的XML看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration xml:space="preserve"> 
<triggers> 
<defined>true</defined> 
<triggerDefinition> 
<id>1</id> 
<name>After successful build plan</name> 
<userDescription>Auto release</userDescription> 
<isEnabled>true</isEnabled> 
<pluginKey>com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:afterSuccessfulPlan</pluginKey> 
<triggeringRepositories/> 
<config> 
<item> 
<key>deployment.trigger.afterSuccessfulPlan.triggeringBranch</key> 
<value>INT-LOAN</value> 
</item> 
<item> 
<key>deployment.trigger.afterSuccessfulPlan.triggeringPlan</key> 
<value>INT-LOAN</value> 
</item> 
<item> 
<key>deployment.trigger.afterSuccessfulPlan.branchSelectionMode</key> 
<value>INHERITED</value> 
</item> 
</config> 
</triggerDefinition> 
</triggers> 
<bambooDelimiterParsingDisabled>true</bambooDelimiterParsingDisabled> 
</configuration> 
+0

您的a1示例中的XPath表達式存在/缺失 –

+0

@ MathiasR.Jessen cheers bu由於嘗試了很多不同的方式,這只是一個錯誤,這不是問題。 –

回答

1

你必須選擇您選擇的節點的子節點/屬性。例如,如果你想輸出的Id屬性值使用Write-Host

Write-Host $a1.Id 

編輯:

我抄你的XML,調用這個實際產出deployment.trigger.afterSuccessfulPlan.triggeringBranch

[xml]$xdoc = Get-Content 'your_xml_path' 
$a1 = $xdoc.SelectNodes("//key")[0] 
Write-Host $a1.InnerText 
+0

如果最後一個節點包含內部文本:'Write-Host $ a1.InnerText' –

+0

我編輯了我的答案。你可能錯過了一些東西告訴我們,只是嘗試我的例子(填寫路徑) –

+0

是的,你是對的,但它不適合我的原因是因爲我的XML文件實際上比我在那裏顯示的大所以它不能得到正確的值,我會嘗試並顯示整個XML文件。 –