1
したがって、1つの要素しか持たないXMLファイルを使用すると、次元1の配列のようにアクセスできなくなるPowerShellはSystem.Array
の代わりにSystem.Xml.XmlLinkedNode
と読み込んでいます。PowerShellで要素が1つのみのXMLファイルを読み取るときにSystem.Arrayを強制する
どのように強制的に1項目の配列として読み取ることができますか?このXMLファイルの読み込み
:
<batch>
<project name="test">
<locPrj>locPrj</locPrj>
<locFolder>locFolder</locFolder>
<plan name="Plan 01" exec="1" />
</project>
</batch>
は私のようにそれを呼び出すことはできません:
[xml]$mainXML = Get-Content -Path "C:\test.xml"
$mainXML.batch.project[0] # This returns nothing!
$mainXML.batch.project.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False XmlElement System.Xml.XmlLinkedNode
しかし、このXMLを、それは私のことができます:
<batch>
<project name="test">
<locPrj>locPrj</locPrj>
<locFolder>locFolder</locFolder>
<plan name="Plan 01" exec="1" />
</project>
<project name="test2">
<locPrj>locPrj2</locPrj>
<locFolder>locFolder2</locFolder>
<plan name="Plan 01" exec="0" />
</project>
</batch>
私がされていますそのノードの配列を強制するコマンドを探していますが、誰も見つけられませんでした。何か案が?
[xml]$mainXML = Get-Content -Path "C:\test2.xml"
$mainXML.batch.project[0] # This the first project called test
$mainXML.batch.project.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
を事は私がループの各「プロジェクト」に行くとその要素を変形していることです。 $ mainXML.batch.project [$ nInt]にダミー変数$ nIntを持つように、このソリューションでは配列に導入するだけですが、いくつかのプロジェクトがあるときは、配列の内部に配列があります。 – Ricardo