<configuration>
<Persister>
    <InfoPlat>
      <add key="DbServer" value="SqlServer" />
      <add key="ConnectionString" value="Persist Security Info=False;database=XFZDBdf;server=(local);user id=sa;pwd=;Connect Timeout=30"/>
      <add key="AutoLoadLevel" value="2" />
    </InfoPlat>
</configuration> string xpath =  "//configuration/Persister/InfoPlat/add[key='ConnectionString']"; 
XmlNode node = doc.SelectSingleNode(xpath);  返回为空,为什么不对?
要把key = 'ConnectionString'的节点读出,如何写 xpath?

解决方案 »

  1.   

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.0">
      <session-factory name="NHibernate.Test">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">server=(local);database=XFZDB;uid=sa;pwd=</property>
        <property name="show_sql">false</property>
        <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        <property name="use_outer_join">true</property>
        <property name="command_timeout">444</property>
        <property name="query.substitutions">true 1, false 0, yes 1, no 0</property>
      </session-factory>
      </hibernate-configuration>这段中如何找出节点: <property name="connection.connection_string">server=(local);database=XFZDB;uid=sa;pwd=</property>
    ?????????????
      

  2.   

    string xpath =  "//configuration/Persister/InfoPlat/add[@key='ConnectionString']";
    试试,没有环境,不能帮你测了
      

  3.   

    string xpath =  "//configuration/Persister/InfoPlat/add[@key='ConnectionString']/@value"; 取得节点key = "ConnectionString" 的value 属性
      

  4.   

    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("x.xml"));
    XmlNamespaceManager nm = new XmlNamespaceManager(doc.NameTable);
    nm.AddNamespace("mxh", "urn:nhibernate-configuration-2.0");
    string xpath = "/mxh:hibernate-configuration/mxh:session-factory/mxh:property[@name='connection.connection_string']";
    XmlNode node = doc.SelectSingleNode(xpath,nm);
    Response.Write(node.InnerText);
      

  5.   

    XmlDocument doc = new XmlDocument();
    doc.Load(@"c:\x.xml");
    XmlNamespaceManager nm = new XmlNamespaceManager(doc.NameTable);
    nm.AddNamespace("mxh", "urn:nhibernate-configuration-2.0");
    string xpath = "/mxh:hibernate-configuration/mxh:session-factory/mxh:property[@name='connection.connection_string']";
    XmlNode node = doc.SelectSingleNode(xpath,nm);
    MessageBox.Show(node.InnerText);
      

  6.   

    yan63的表达式是正确的, 孟子把第二个问题解答的很详细, 非常感谢!