Zobrazení hodnot z XML   otázka

VB.NET, XML

Dobrý den, používám XMl soubor s touhle strukturou:

<?xml version="1.0" encoding="utf-8" ?> 
- <configuration>
  - <Binars>
     <ID1 Name="ID1" Nazev="stav nabití příjmač" Val="0" /> 
       <ID2 Name="ID2" Nazev="kontakt antény" Val="0" /> 
       <ID3 Name="ID4" Nazev="víko zařízení" Val="1" /> 
     </Binars>
  - <Analogs>
      <ID1 Name="ID1" Nazev="K_stara" Val="20,56" Unit="m" /> 
       <ID2 Name="ID3" Nazev="K_nova" Val="27,17" Unit="m" /> 
       <ID3 Name="ID4" Nazev="K_tlak" Val="3,15" Unit="Mpa" />
     </Analogs>
     -<Impulss>
        <ID1 Name="ID1" Nazev="1patro" Val="524,78" Unit="kW"   ValCounter="12 471 788" UnitCounter="kWh" /> 
       <ID2 Name="ID2" Nazev="2patro" Val="504,20" Unit="kW" ValCounter="12 421 165" UnitCounter="kWh" /> 
       <ID3 Name="ID3" Nazev="3patro" Val="586,32" Unit="kW" ValCounter="14 244 616" UnitCounter="kWh" /> 
  - </ Impulss >
</configuration>

a z tohoto souboru potřebuji dostat do proměnné uzel Val

Zkouším to pomocí takového skriptu, bohužel neúspěšně (uzel Impulss)

For Each NodesI As Xml.XmlNode In doc.SelectNodes("//configuration/Impulss")             
  
Dim i1 As String = NodesI.SelectSingleNode("ID1/Val").InnerText
            
Label1patro.Text = (i1 & " kWh")
            
 Next

Funguje to při tomto zápisu (uzel Analogs)

Dim NodesA = doc.SelectNodes("//configuration/Analogs")    ' pole požadovaných tagů 
            Dim a1 As String = NodesA.Item(0).ChildNodes(1).Attributes.Item(2).Value
            Dim a2 As String = NodesA.Item(0).ChildNodes(2).Attributes.Item(2).Value
         
            LabelKamennaStara.Text = a1
            LabelKamennaNova.Text = (a2 & " m")

Jenže tady je zřejmý problém s tím, že když odstaraním první záznam z XML, tak se výpisy do Label taky posunou o 1.

Potřeboval bych tedy poradit, jak to správně zapsat pomocí prvního naznačeného zápisu.

Děkuji Raška David

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

já to řeším přes .attributes("nazev atributu").value

.innertext je obsah elementu <elemnt>obsah elementu</element>

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

Děkuji funguje to, moc mi to pomohlo.

nahlásit spamnahlásit spam 1 / 1 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