XMLオブジェクトを文字列に変換する方法を探しています。
Powershellに$xml.toString()のような方法はありますか?
XMLオブジェクトを文字列に変換する方法を探しています。
Powershellに$xml.toString()のような方法はありますか?
あなたはおそらく探していOuterXml
ます。
$xml.OuterXml
あなたが望むものをあなたに与えるべきです。
XMLオブジェクトをどのように作成していますか?
通常、オブジェクトからXML文字列が必要な場合は、次を使用します。
$object | ConvertTo-Xml -As String
これを試して:
[string[]]$text = $doc.OuterXml #or use Get-Content to read an XML File
$data = New-Object System.Collections.ArrayList
[void] $data.Add($text -join "`n")
$tmpDoc = New-Object System.Xml.XmlDataDocument
$tmpDoc.LoadXml($data -join "`n")
$sw = New-Object System.IO.StringWriter
$writer = New-Object System.Xml.XmlTextWriter($sw)
$writer.Formatting = [System.Xml.Formatting]::Indented
$tmpDoc.WriteContentTo($writer)
$sw.ToString()
このスクリプトを使用して、生成したXMLをWindowsフォームのTextBoxに書き込みました。
より単純なバージョン:
[string]$outputString = $XmlObject.childNode.childNode.theElementValueIWant.ToString()
Xmlパスは、ソースXMLツリー構造がからのもの$XmlObject
です。
したがって、次の場合$XmlObject
:
<xmlRoot>
<firstLevel>
<secondLevel>
<iWantThisValue>THE STRING I SEEK</iWantThisValue>
</secondLevel>
</firstLevel>
</xmlRoot>
使用するもの:
[string]$outputString = $XmlObject.firstLevel.secondLevel.iWantThisValue.ToString()