2009-09-25 62 views
0

自從我搞砸XPath並需要一些指導以來,這已經有好幾年了。從序列化的WCF xml配置文件中選擇節點

下面是XML片段:

<?xml version="1.0" encoding="utf-8"?> 
<ConfigurationObject xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" i:type="AlgorithmDataSourceConfiguration" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://www.foo.com/bar/2008/03"> 
    <ConfigurationSection z:Id="2"> 
    <Type z:Id="3"> 
     <Name z:Id="4">AlgorithmDataSource</Name> 

CODE:

 XmlDocument doc = new XmlDocument(); 
     doc.Load(path); 
     XmlNamespaceManager mng = new XmlNamespaceManager(doc.NameTable); 

     mng.AddNamespace("z", "http://schemas.microsoft.com/2003/10/Serialization/"); 

     XmlNodeList list = doc.SelectNodes("ConfigurationObject/ConfigurationSection /@z:Id=\"4\"",mng); 
     foreach(XmlNode s in list) 
     { 
      Console.WriteLine(s.InnerText); 
     } 

列表不包含任何節點?

您認爲如何?

回答

0

從您提供的XML片段,這個XPath:

//ConfigurationObject/ConfigurationSection[@z:Id='2'] 

會選擇第一個的ConfigurationSection節點。