Xmlファイルから情報を抽出し、必要に応じてアプリプールを更新/作成しようとしています。これが私が読んでいるxmlです:
<?xml version="1.0" encoding="utf-8"?>
<appPool name="MyAppPool">
<enable32BitAppOnWin64>true</enable32BitAppOnWin64>
<managedPipelineMode>Integrated</managedPipelineMode>
<managedRuntimeVersion>v4.0</managedRuntimeVersion>
<autoStart>true</autoStart>
</appPool>
これが私がそれでやろうとしていることです:
#read in the xml
$appPoolXml = [xml](Get-Content $file)
#get the name of the app pool
$name = $appPoolXml.appPool.name
#iterate over the nodes and update the app pool
$appPoolXml.appPool.ChildNodes | % {
#this is where the problem exists
set-itemproperty IIS:\AppPools\$name -name $_.Name -value $_.Value
}
$_.Name
はノードの名前を返します(つまり、enable32BitAppOnWin64
)は正しいですが、.Value
プロパティは何も返しません。必要なデータを抽出するにはどうすればよいですか?
正解:
$_.'#text'
ではなく$_.Value
が必要です。
System.Xml.XmlElement
オブジェクトのInnerText
プロパティを使用するこれも考慮してください。
$ xml.appPool.ChildNodes | %{$ 。Name; $。InnerText};