PSObject强制转换为List <string> </string>

时间:2014-05-29 13:28:03

标签: c# list powershell serialization

在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>

1 个答案:

答案 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.LinqSystem.Xml.XPathusing名称空间。