【问题标题】:powershell for parsing json and merging it into an xml file用于解析 json 并将其合并到 xml 文件中的 powershell
【发布时间】:2020-11-26 23:07:20
【问题描述】:

在 powershell 5.0 中,如何提取动态 JsonToExtract.json 的“结果”数组,并将提取的值唯一地附加到现有 <name>TargetName</name> 下方的 <members> 中的 file.XML 中?请参阅下面的文件结构和我试图实现的目标。提前感谢您的帮助!

JsonToExtract.json

  {
      "status": 0,
      "result": [
        "car",
        "bike",
        "wheel",
        "door",
        "fish",
        "mountains"
      ]
    }

file.xml(合并前)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://*">
  <types>
    <name>Weather</name>
    <members>Cloudy</members>
  </types>
  <types>
    <name>TargetName</name>
    <members>car</members>
  </types>
  <version>48.0</version>
</Package>

file.xml(这是我所期望的)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://*">
  <types>
    <name>Weather</name>
    <members>Cloudy</members>
  </types>
  <types>
    <name>TargetName</name>
    <members>car</members>
    <members>bike</members>
    <members>wheel</members>
    <members>door</members>
    <members>fish</members>
    <members>mountains</members>
  </types>
<version>48.0</version>
</Package>

【问题讨论】:

    标签: json xml powershell powershell-5.0


    【解决方案1】:

    示例代码:

    $file = [xml](Get-Content file.xml -Raw)
    $json = Get-Content .\JsonToExtract.json -Raw | ConvertFrom-Json
    
    $TargetNode = $file.Package.types | where { $_.name -eq 'TargetName' }
    foreach ($j in $json.result)
    {
            $e = $file.CreateElement(“members”,$file.Package.NamespaceURI)
            $e.set_InnerText($j)
            $TargetNode.AppendChild($e) > $null
    }
    
    $file.Save("$(Resolve-Path .)\fileOut.xml")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2020-04-15
      相关资源
      最近更新 更多