System.Xml.XmlDocument.SelectNodes
不适用于Windows任务计划程序XML。以下是XML的摘录:
<?xml version="1.0" encoding="UTF-8"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2014-12-03T13:58:05.5136628</Date>
<Author>ABCCORP\jsmith</Author>
</RegistrationInfo>
</Task>
以下代码未找到Task元素:
[xml]$xml = gc C:\temp\myxml.xml
$xml.SelectNodes("/Task") #returns nothing
但是,如果我从XML中删除命名空间,那么它可以工作:
<?xml version="1.0" encoding="UTF-8"?>
<Task version="1.3">
<RegistrationInfo>
<Date>2014-12-03T13:58:05.5136628</Date>
<Author>ABCCORP\jsmith</Author>
</RegistrationInfo>
</Task>
我该如何做到这一点?
答案 0 :(得分:0)
需要命名空间管理器:
[xml]$xml = gc C:\temp\myxml.xml
$ns = new-object Xml.XmlNamespaceManager $xml.NameTable
$ns.AddNamespace("ns0", "http://schemas.microsoft.com/windows/2004/02/mit/task")
$xml.SelectNodes("ns0:Task", $ns)