37

我正在寻找一种将 XML-Object 转换为字符串的方法。

Powershell 中是否有类似 $xml.toString() 的方法?

4

4 回答 4

66

您可能正在寻找OuterXml.

$xml.OuterXml应该给你你想要的。

于 2013-03-14T13:29:15.810 回答
9

您是如何创建 XML 对象的?

通常,如果您想要来自对象的 XML 字符串,您可以使用:

$object | ConvertTo-Xml -As String
于 2013-03-14T13:27:36.810 回答
2

Try this:

[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()

I used this script to write my generated XML into a TextBox in Windows Forms.

于 2019-11-07T09:39:59.690 回答
0

一个更简单的版本:

[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()
于 2021-07-26T06:04:40.987 回答