在C#中处理PSObject 对于命令:
Get-SCVirtualNetworkAdapter -All
响应对象之一:
IPv4地址:{12.12.12.12}
序列化数据:
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
<Obj RefId="0">
<TN RefId="0">
<T>Deserialized.System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]</T>
<T>Deserialized.System.Object</T>
</TN>
<LST>
<S>192.168.11.22</S>
</LST>
</Obj>
</Objs>
我想得到
<LST>
<S>192.168.11.22</S>
</LST>
as
List<String>
答案 0 :(得分:1)
您可以使用任何xml解析器。我更喜欢linq到xml。
var xml=XElement.Load(xmlFilePath);
var nsManager=new XmlNamespaceManager(new XmlNameTable());
nsManager.AddNamespace("ns1",@"http://schemas.microsoft.com/powershell/2004/04");
var list=xml.XPathSelectElements("//ns1:LST/ns1:S",nsManager)
.Select(element=>element.Value);
PS:您需要在System.Xml
语句中添加System.Xml.Linq
,System.Xml.XPath
和using
名称空间。