PowerShell-将XmlElement转换为转义字符串

PowerShell-将XmlElement转换为转义字符串,xml,powershell,escaping,Xml,Powershell,Escaping,在PS中,我正在执行一个API调用,该调用以xml格式返回数据: IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False XmlElement System.Xml.XmlLinkedNode 然后,我使用PS修改/添加一个节点,它的值如下所示: $resultAdminGet.Parent.Node.SubNode.Eleme

在PS中,我正在执行一个API调用,该调用以xml格式返回数据:

IsPublic IsSerial Name             BaseType
-------- -------- ----             --------
True     False    XmlElement       System.Xml.XmlLinkedNode
然后,我使用PS修改/添加一个节点,它的值如下所示:

$resultAdminGet.Parent.Node.SubNode.Element= "<value>"
$resultAdminGet.Parent.Node.SubNode.Element=“”
这一切都是有效的,当我调用子节点时,它会按预期返回修改后的值

我现在遇到的问题是,我需要将此子节点XmlElement格式化为嵌套在父节点中的转义xml字符串,以便使用API进行实际更新时具有类似的值:

<Parent>
    <Version>1.7</Version>
    <Context>(omitted )</Context>
    <MsgType>(omitted )</MsgType>
    <Type>43</Type>
    <Name>Test</Name>
    <GenericNode>&lt;GenericNode>**((ESCAPED STRING HERE))**/GenericNode></GenericNode>
</Parent>

1.7
(略)
(略)
43
试验
GenericNode>**(此处为转义字符串))**/GenericNode>
注意-我可能对敏感数据解释得不好/遗漏了一些敏感数据,有些术语可能已关闭,但通过使用
$resultAdminGet.Parent.Node.SubNode
,这些都是我需要转义的xml值

如何实现这一目标,有何帮助/想法


谢谢

在您的示例中,您可以使用该方法将无效的XML字符替换为它们的XML等价物

[System.Security.SecurityElement]::Escape($resultAdminGet.Parent.Node.SubNode.InnerXml)

在您的示例中,您可以使用该方法将无效的XML字符替换为它们的XML等价物

[System.Security.SecurityElement]::Escape($resultAdminGet.Parent.Node.SubNode.InnerXml)

尝试使用
[System.Security.SecurityElement]::Escape(“”)
@AdminOfThings它只是返回'System.Xml.xmlement'也许你想要
[System.Security.SecurityElement]::Escape($resultAdminGet.Parent.Node.SubNode.InnerXml)
。在你发表评论之前尝试了'InnerText',并且有点接近,但是InnerXml工作得很好!当然更接近这项工作,现在只需要将其包裹在适当的外部元素中。非常感谢。尝试使用
[System.Security.SecurityElement]::Escape(“”)
@AdminOfThings它只是返回'System.Xml.xmlement'也许你想要
[System.Security.SecurityElement]::Escape($resultAdminGet.Parent.Node.SubNode.InnerXml)
。在你发表评论之前尝试了'InnerText',并且有点接近,但是InnerXml工作得很好!当然更接近这项工作,现在只需要将其包裹在适当的外部元素中。非常感谢。