json - 用于解析 json 并将其合并到 xml 文件中的 powershell
问题描述
在 powershell 5.0 中,如何提取动态的“结果”数组JsonToExtract.json
并将提取的值唯一地附加到现有的<members>
下方?请参阅下面的文件结构和我试图实现的目标。在此先感谢您的帮助!<name>TargetName</name>
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>
解决方案
示例代码:
$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")
推荐阅读
- android - 将 Mat 从 OpenCV 传递到 MLkit 的 Facedetector
- python - 如何对 json 字典列表中特定键的值求和
- c++ - 记录 QSqlDatabase 原始查询
- sql - 如果连接的值在特定集中,则在 JOIN 查询中使用 LIKE
- react-native - 访问 react-native-web 中的底层 DOM 节点
- database - 数据库连接到本地主机但不在互联网上
- java - StatusLogger 找到多个日志记录实现
- react-native - 在 iOS 和 Android 中使用相同代码但结果不同的 React Native 应用程序
- ios - 自定义后退按钮有多余的多余空间
- queue - 如何在 Websphere 应用服务器中启用或禁用队列