2011-04-04 11 views
5

मैं एक प्रारूप में एक xml फ़ाइल इस के समान है से एक एक्सएमएल फ़ाइल में विशिष्ट नोड्स का चयन:कई स्तरों

<benchmark> 
<group> 
    <id>1</id> 
    <rule> 
     <id>H1234</id> 
     <severity>High</severity> 
    </rule> 
    <title>How to win</title> 
</group> 
<group> 
    <id>2</id> 
    <rule> 
     <id>5317</id> 
     <severity>low</severity> 
    </rule> 
    <title>How to not</title> 
</group> 
<group> 
    <id>3</id> 
    <rule> 
     <id>H15678</id> 
     <severity>medium</severity> 
    </rule> 
    <title>How to be</title> 
</group> 
<group> 
    <id>4</id> 
    <rule> 
     <id>H454</id> 
     <severity>High</severity> 
    </rule> 
    <title>How to lose</title> 
</group></benchmark> 

मैं समूह/आईडी, समूह/नियम/आईडी चयन करने के लिए सक्षम होने के लिए चाहते हैं , एक्सएमएल डॉक्यूमेंट में प्रत्येक समूह से समूह/नियम/गंभीरता और समूह/शीर्षक मान।

मैं इस की कोशिश की है लेकिन यह केवल मुझे वहां जिस तरह का हिस्सा हो जाता है:

I have tried $xml.benchmark.group | %{$_} | select title, id 

मैं तुम्हारी मदद की सराहना करते हैं!

Clear-Host 
$xmlData = [xml](Get-Content c:\temp\fic.xml) 
foreach ($group in $xmlData.benchmark.group) 
{ 
    $group.id 
    $group.title 
    $group.rule.id 
} 

कमांड लाइन पर:

उत्तर

11

यह मेरे लिए काम करता है:

$xml.benchmark.group | 
select @{ L = 'GroupID';  E = { $_.id } }, 
     @{ L = 'GroupTitle'; E = { $_.title } }, 
     @{ L = 'RuleID';  E = { $_.rule.id } }, 
     @{ L = 'RuleSeverity'; E = { $_.rule.severity } } 

निम्नलिखित उपज:

GroupID GroupTitle RuleID RuleSeverity 
------- ---------- ------ ------------ 
1  How to win H1234 High 
2  How to not 5317 low 
3  How to be H15678 medium 
4  How to lose H454 High 

वाक्य रचना के ऊपर के समान है एसक्यूएल के SELECT Foo AS Bar, हैशटेबल में एक मान (Expression या E) का चयन करना और प्रदर्शन उद्देश्यों के लिए उपनाम प्रदान करना (Label या L हैशटेबल में)।

+0

यह काम करता है! धन्यवाद! – jgrant

2

इस के साथ किया जा सकता है।

([xml](Get-Content C:\temp\fic.xmlfic.xml)).benchmark.group | % {$_.id + " " + $_.rule.id} 

मुझे आशा है कि यह मदद करता है

जेपी

+0

कोशिश करने के लिए धन्यवाद। मैं पहले ही आईडी और शीर्षक खींच रहा था। मुझे निचले स्तर के नोड्स से आईडी और गंभीरता की भी आवश्यकता थी। – jgrant

+0

यहां आप हैं, आप बहुत मेहनत नहीं कर रहे हैं। मैं कोशिश करता हूं; ओ) – JPBlanc

संबंधित मुद्दे