如何使用Powershell从索引号的XML中删除子节点

时间:2017-10-03 03:01:26

标签: xml powershell

对不起,我是初学者PowerShell开发者。所以我有一个XML文档,如下所示:

mean(., na.rm = TRUE)

所以我想输入参数来执行ps1脚本 像这样 。\ deletetask1.ps1 3

期待这个xml

<task>
   <list>list1</list>
   <list>list2</list>
   <list>list3</list>
   <list>list4</list>
   <list>list5</list>
</task>

任何人都可以帮助我编写删除主题PowerShell脚本或建议我如何执行此操作吗?

谢谢

2 个答案:

答案 0 :(得分:0)

我试试这个。我不确定这是好事还是不好吗?

function delete { 

[xml]$xml = (Get-Content $filename)
$nodedelete = $xml.task.ChildNodes.item($param)
$xml.task.RemoveChild($nodedelete)
$xml.Save($filename)
} 

我的脚本有问题。 如何检查Childnodes项目的数量?因为删除子节点时我的代码有一些错误。

答案 1 :(得分:0)

首先,我想提及(因为我还没有足够的声誉来评论)你应该在提出问题之前真正尝试展示你尝试或研究过的东西。 SO的目的不是让别人为你编写代码。话虽如此。

您应该查看Dynamic Casting以帮助您完成此任务。如果您的目标是将数据读入变量,那么删除条目,这可能是您的需求。我鼓励你看看这个,然后玩变量的标签完成,看看你能学到什么。另外,还可以查看this blog post

如果您遇到困难,或需要快速而肮脏的示例,请参阅以下内容:

$test = "<task>
   <list>list1</list>
   <list>list2</list>
   <list>list3</list>
   <list>list4</list>
   <list>list5</list>
</task>"

[xml] $myxml = $test

$remove = $myxml.task.SelectSingleNode("//list[.='list2']")

$remove.ParentNode.RemoveChild($remove)

一旦你有时间玩这个,你可以考虑更新你的问题以显示你所尝试的内容,并就你不理解的内容提出问题。