PowerShell-将XmlElement转换为转义字符串
在PS中,我正在执行一个API调用,该调用以xml格式返回数据: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
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><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工作得很好!当然更接近这项工作,现在只需要将其包裹在适当的外部元素中。非常感谢。