System.Xml.XmlDocument.SelectNodes不使用Windows任务计划程序XML命名空间

时间:2015-06-29 20:31:36

标签: xml powershell

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>

我该如何做到这一点?

1 个答案:

答案 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)