xml - 通过 powershell 将数据附加到现有的 xml 文件中

标签 xml powershell foreach selectnodes

我可以使用 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...如果有人可以分享一些想法,我会很乐意使用它。 ..

最佳答案

应该是这样的:

$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")

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

关于xml - 通过 powershell 将数据附加到现有的 xml 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751230/

相关文章:

sql-server - 将 Inserted 和 Deleted 行转换为 Xml 以供审计

javascript - 如何获取 XML 标签内的内容来创建数组?

java - 元素 "xsd"的前缀 "xsd:element"未绑定(bind)。 [11]

powershell - 为什么我的计算列是空的(它使用哈希表查找)

powershell - 使用 PowerShell 为驱动器分配挂载点文件夹路径

PHP - 循环管理复选框

java - 如何在 java 代码中读取 View 的 android 默认属性

powershell - 如何将本地组的描述设置为空白

php - 仅当值在 PHP 循环期间在特定组内时才打印出某些内容

r - 如何向量化或以其他方式加速 R 中的循环逻辑?