V As Xml.XmlNode In Data.SelectNodes nesmí být nula?   otázka

VB.NET, Algoritmy, XML

Dobrý den,

metodou "pokus/omyl" jsem pochopil, že např zde:

For Each Uzel as Xml.XmlNode In Data.SelectNodes("VstupniData/" & Promenna1 & "/" & Promenna2)

není možné použít uvnitř proměnné nulu (a je jedno jestli je na začátku, uprostřed nebo na konci). Proč tomu tak je a jak se to dá obelstít?

Pokud je Promenna2 jako string s hodnotou D32, tak je to OK (neobsahuje 0), ale pokud je např D20, D30 nebo D50, tak to hodí hlášku: "Expression must evaluate to a node-set."

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nějak nevím proč by měl být problém s Nodem, který má v názvu "0".

S xml pracuji hodně často a jen jsem zkusil:

XML:

<?xml version="1.0" encoding="utf-8" ?>
<VstupniData>
	<D32>
		<D50>
			<A>1</A>
			<B>2</B>
			<C>3</C>
		</D50>
	</D32>
</VstupniData>

Program:

     Dim promenna1 As String = "D32"
        Dim promenna2 As String = "D50"

        Dim xmlDoc As New XmlDocument
        xmlDoc.Load(IO.Path.Combine(Application.StartupPath, "Test.xml"))

        Dim xmlNode As XmlNode = xmlDoc.SelectSingleNode("VstupniData/" & promenna1 & "/" & promenna2)

        For Each n As XmlNode In xmlNode.ChildNodes
            MessageBox.Show(n.InnerText)
        Next

A funguje to tak jak má

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Váš kód mi také funguje, tak nevím, asi jsem někde udělal nějakou hovadinu.. Každopádně pokud v mém souboru xml, přepíšu konkrétní "nod" z D32 na D50 tak to nefunguje a naopak (zD50 na D32 funguje). Vyřešil jsem to, přiznám se, velmi velmi prasácky, - změnou nul na "O." Protože čas tlačil, v budoucnu, to snad nějak zachráním...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je blbost a vypadá to na chybu ve vašem kódu. XmlNode s nulami v názvu tagů nemá problém.

Pošlete sem větší kousek kódu, který používáte, to není možné, aby nula v názvu elementu na konci dělal problémy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback