Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Giovanna 13. 08. 2015, 01:38:40
-
Dobrý den,
opět mě čeká dlouhá noc a nemám jasno v jedné věci, kterou jsem nevyřešil. Prosím o pomoc.
Mám Xml soubor s obsahem:
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=.\SQLEXPRESS;Database=EvalDB;User=SYSDBA;Password=masterkey;Integrated Security=True;</property>
<property name="show_sql">false</property>
</session-factory>
</hibernate-configuration>
a chtěl jsem pomocí následujícího kódu vyparsovat:
XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
XmlNode xmlNode = doc.SelectSingleNode("/hibernate-configuration/session-factory/property[@name = 'connection.connection_string']");
textBox1.Text = xmlNode.InnerText;
jenže výsledek je null;
Napada Vas prosim něco?
Diky
G.
-
V .NET nedělám, ale podle MSDN bych tipoval, že ti tam chybí toto.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("hib", "urn:nhibernate-configuration-2.2");
Xml uzly totiž musíš kvalifikovat.
Koukni se k čemu slouží ten atribut xmlns.
-
Také jsem nazahálel a nešel řešní na StackOverflow:
Můj současný kód vypadá takhle:
XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("x", "urn:nhibernate-configuration-2.2");
XmlNode xmlNode = doc.SelectSingleNode("x:hibernate-configuration/session-factory/property[@name = 'connection.connection_string']", mgr);
textBox1.Text = xmlNode.InnerText;
ale XmlNode je stále null Nevím si rady.
Děláte někdo prosím v .NET?
G.
-
Elementy session-factory a property jsou také ve jmenném prostoru urn:nhibernate-configuration-2.2. Takže XPath má být x:hibernate-configuration/x:session-factory/x:property[@name = 'connection.connection_string']