【问题标题】:Append data into existing xml file via powershell通过 powershell 将数据附加到现有的 xml 文件中
【发布时间】:2012-11-24 22:21:21
【问题描述】:

我可以帮助我使用 powershell 将节点添加到现有的 XML 中吗?

这是我所拥有的:

<agentList>
 <newAgent>
      <name>Justice, Kari</name>
      <mu>4690</mu>
  <agentData>
   <group>
       <description>GROUP_DESCRIPTION</description><value>GROUP_NAME</value>
   </group>
  </agentData>
 </newAgent>
</agentList>

我需要添加这个:

  <group><description>ACSR System Logon</description><value></value></group>
  <group><description>Current Call Type</description><value></value></group>
  <group><description>OMS</description><value></value></group>
  <group><description>RIO Log-in</description><value></value></group>
  <group><description>Site</description><value></value></group>

这里:

<agentList>
 <newAgent>
      <name>Justice, Kari</name>
      <mu>4690</mu>
  <agentData>
   <group>
       <description>GROUP_DESCRIPTION</description><value>GROUP_NAME</value>
           <====== HERE
           <====== HERE
           <====== HERE
           <====== HERE
   </group>
  </agentData>
 </newAgent>
</agentList>

我在 XML 上可能有多个用户,所以我想使用 FOREACH 行。但我在 powershell 中使用 xml 有点迷路了...如果有人可以分享一些想法,我会很高兴使用它。 ..

【问题讨论】:

    标签: xml powershell foreach selectnodes


    【解决方案1】:

    应该是这样的:

    $GroupList = @{"Mickey" = "mouse";"Minnie" = "mouse";"Goofy" = "dog"}
    
    $xml=[xml](get-content .\yourfile.xml)
    $xml | Select-Xml -XPath '/agentList/newAgent/agentData' | foreach-object{$_.node.removeall()} #clear group section
    $groupNode = $xml.createelement("group")
    
    foreach ($description in $($GroupList.keys))
    {
        $descNode = $xml.createelement("description")
        $descNode.setattribute("value",$description)
        $groupNode.appendchild($descNode)
    
        $valueNode = $xml.createelement("value")
        $valueNode.setattribute("value",$GroupList[$description])
        $groupNode.appendchild($valueNode)
    }
    
    $xml.selectsinglenode("agentList/newAgent/agentData").appendchild($groupNode)
    $xml.save("C:\YourPathHere\test.xml")
    

    ** 此代码假定“.\yourfile.xml”中已经存在“group”元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多