2011年7月19日火曜日

◆XMLファイルを扱う3(Select-Xml)

PowerShell: ◆XMLファイルを扱うではXML型にキャストしたが、Select-Xmlコマンドレットを使っても良さそうだ。

Types.ps1xml

<Types>
    <Type>
        <Name>System.Array</Name>
        <Members>
            <AliasProperty>
                <Name>Count</Name>
                <ReferencedMemberName>Length</ReferencedMemberName>
            </AliasProperty>
        </Members>
    </Type>
    <Type>
        <Name>System.Xml.XmlNode</Name>
        <Members>
            <CodeMethod>
                <Name>ToString</Name>
                <CodeReference>
                    <TypeName>Microsoft.PowerShell.ToStringCodeMethods</TypeName>
                    <MethodName>XmlNode</MethodName>
                </CodeReference>
            </CodeMethod>
        </Members>
    </Type>
         .
         .
         .


001
002

select-xml -path $path -xpath "/Types/Type/Members/AliasProperty" | 
 
select {$_.node.Name} , {$_.node.ReferencedMemberName}

image

 

001
002

select-xml -path $path -xpath "/Types/Type/Members/AliasProperty/Name" | 
   
select {$_.node."#text"}

image

ノードのそれぞれのプロパティを参照すると以上の様な感じになると思うのだが、実際にはExpandPropertyを使って以下のように書くと簡単そうである。

001
002

select-xml -path $path -xpath "/Types/Type/Members/AliasProperty" | 
 
select -ExpandProperty node

0 件のコメント:

コメントを投稿