5

私はこのようなxmlを持っています:

 <?xml version="1.0" encoding="utf-8" ?>
 <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <reflection-optimizer use="false"/>
    <session-factory>
           <property name="XX">XX</property>
           <property name="XX">XX</property>
    </session-factory>  
  </hibernate-configuration>

SelectNodes を使用してプロパティ ノードを選択しようとしていますが、次のことを試しました。

root.SelectNodes("property");
root.SelectNodes("//property");
root.SelectNodes("/session-factory/property");
root.SelectNodes("descendant::property");
root.LastChild.SelectNodes("child::property");

しかし、それらはすべて 0 ノードを返します。誰でも私を助けることができますか?ありがとう。

4

3 に答える 3

5

この長い答えを見てください:

なぜ XmlNamespaceManager が必要なのですか?

これは、ルート ノードの名前空間に関係しています。

于 2012-07-27T14:42:16.080 に答える
0

LINQtoXMLを使用することをお勧めします

    var xml = XDocument.Parse(
    @"<?xml version=""1.0"" encoding=""utf-8"" ?>
    <hibernate-configuration xmlns=""urn:nhibernate-configuration-2.2"">
    <reflection-optimizer use=""false""/>
    <session-factory>
    <property name=""XX"">XX</property>
    <property name=""XX"">XX</property>
    </session-factory>  
    </hibernate-configuration>");
    var properties = xml.Descendants().Where(p=>p.Name.LocalName.Equals("property")).ToList();

詳細については、msdnを確認してください:http://msdn.microsoft.com/en-us/library/bb943906.aspx

于 2012-07-27T14:50:01.223 に答える