如何使用PowerShell更新第三方XML文件的Date属性(SelectNodes失效)
实现PowerShell更新XML Date属性的方法
完全可以实现,不需要依赖SelectNodes方法,直接通过PowerShell的XML对象属性遍历即可完成修改,不受第三方Schema约束限制,具体操作如下:
操作步骤
- 加载XML文件到PowerShell的XmlDocument对象
- 直接遍历根节点下的目标子节点
- 按需修改Date属性值
- 保存修改后的XML文件
完整代码示例
# 替换为你的XML文件实际路径 $xmlFilePath = "C:\xxx\你的目标文件.xml" # 加载XML文件 $xmlObj = New-Object System.Xml.XmlDocument $xmlObj.Load($xmlFilePath) # 自定义要更新的时间,示例为当前时间加7天,格式和原XML保持一致 $targetDate = (Get-Date).AddDays(7).ToString("yyyy-MM-dd HH:mm") # 遍历所有ScheduleDetails节点修改Date属性 foreach ($detailNode in $xmlObj.JOBS.ScheduleDetails) { # 全量修改直接赋值即可,如果需要按条件修改,比如只改Env2的Date,可加判断: # if ($detailNode.Environment -eq "Env2") { $detailNode.Date = $targetDate } $detailNode.Date = $targetDate } # 保存修改后的XML $xmlObj.Save($xmlFilePath)
说明
- 直接通过
.访问XML节点属性的方式不需要处理命名空间、Schema校验,兼容性远高于XPath查询,刚好适配第三方无修改权限的XML场景 - 用XmlDocument原生的Save方法保存,不会破坏原XML的结构、编码和其他未修改的属性
内容的提问来源于stack exchange,提问作者learner1668
相关产品推荐
相关产品推荐

