Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Läsa attributvärden i XML-taggar

Postades av 2006-07-27 16:27:37 - Torbjörn Karlsson, i forum vb.net, Tråden har 8 Kommentarer och lästs av 1206 personer

Hej

Jag har en exempelkod skriven i VB.NET och en exempel XML-fil nedan.

Jag vill även lyfta ut värden från attributen som finns i XML-taggarna. Någon som har någon hyfsat 'enkel' lösning för sådant??

Aktuell kod loopar endast genom värden som har en definerad start resp sluttagg, och huvudvärken börjar som sagt när jag försöker blanda in attributen.


Programkoden:
------------------------

Imports System.Xml
Imports System.Xml.Serialization

Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FileName As String = "C:\AddressBook.xml"
Dim Reader As New XmlTextReader(FileName)
Reader.MoveToContent()
Dim addressData As Collection, elementName As String

Do While Reader.Read


Select Case Reader.NodeType

Case XmlNodeType.Element
If Reader.Name = "CONTACT" Then
addressData = New Collection
Else
elementName = Reader.Name
End If


Case XmlNodeType.Text
If Not addressData Is Nothing Then
addressData.Add(Reader.Value, elementName)

End If

Case XmlNodeType.EndElement
If Reader.Name = "CONTACT" Then
Dim item As String

Try
item = addressData("FirstName") & " " & addressData("LastName") & " (" & addressData("Email") & ")"
Catch
End Try
TextBox1.Items.Add(item)
addressData = Nothing
End If


End Select

Loop
End Sub
End Class


XML-filen:
------------------------

<?xml version="1.0"?>
<AddressBook xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Addresses version="1.0">

<MAIN class="01008000">
<CONTACT label="Bosse" value"test1">
<FirstName>Bosse</FirstName>
<LastName>Andersson</LastName>
<Company>Företaget AB</Company>
<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>bosse@home.se</Email>
</CONTACT>
<CONTACT label="Lasse" value"test2">
<FirstName>Lasse</FirstName>
<LastName>Johansson</LastName>
<Company>Företaget AB</Company>
<<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>lasse@home.se</Email>
<CONTACT label="Hasse" value"test3">
<FirstName>Hasse</FirstName>
<LastName>Persson</LastName>
<Company>Företaget AB</Company>
<<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>hasse@home.se</Email>
</CONTACT>
</CONTACT>
</MAIN>

</Addresses>
</AddressBook>



Svara

Sv: Läsa attributvärden i XML-taggar

Postades av 2006-07-27 18:22:21 - Michael Jacobsen

Om XmlTextReader'n har läst in följande tag:

<Addresses version="1.0">

kan du skriva:

reader("version")

mvh Michael


Svara

Sv:Läsa attributvärden i XML-taggar

Postades av 2006-07-27 18:55:07 - Torbjörn Karlsson

Hej

det verkar inte hjälpa, troligen saknas det någon class som behövs för att dyka ned i attributen. Jag har laborerat med olika sådana och ändrat XmlNodeType fram och tillbaka.


Svara

Sv: Läsa attributvärden i XML-taggar

Postades av 2006-07-27 19:29:28 - Michael Jacobsen

Jo, det ska funka. Propertyn på xmltextreadern heter egentligen Item. Det går lika bra att skriva så här:

reader.Item("version")

Kan även indexera dig fram till rätt värde:

reader(0)


Svara

Sv:Läsa attributvärden i XML-taggar

Postades av 2006-07-27 20:41:41 - Torbjörn Karlsson

Nepp det går inge bra detta.

Och plötsligt vill inte loopen vara med längre.

FELMEDDELANDE
Do While Reader.Read ' är en oväntad token

Vad nu det är för något...?

............................Hittade felet..... åäö gillas INTE


Svara

Sv: Läsa attributvärden i XML-taggar

Postades av 2006-07-27 23:07:56 - Michael Jacobsen

Hittade några fel i xml'en. Det saknas = vid value-attributet, samt några taggar börjar med <<. Jag fick det att funka med denna xml'en:

<?xml version="1.0"?>
<AddressBook xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Addresses version="1.0">

<MAIN class="01008000">
<CONTACT label="Bosse" value="test1">
<FirstName>Bosse</FirstName>
<LastName>Andersson</LastName>
<Company>Företaget AB</Company>
<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>bosse@home.se</Email>
</CONTACT>
<CONTACT label="Lasse" value="test2">
<FirstName>Lasse</FirstName>
<LastName>Johansson</LastName>
<Company>Företaget AB</Company>
<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>lasse@home.se</Email>
</CONTACT>
<CONTACT label="Hasse" value="test3">
<FirstName>Hasse</FirstName>
<LastName>Persson</LastName>
<Company>Företaget AB</Company>
<Address>123 Huvudgatan</Address>
<City>Staden</City>
<Email>hasse@home.se</Email>
</CONTACT>
</MAIN>

</Addresses>
</AddressBook>


Svara

Sv:Läsa attributvärden i XML-taggar

Postades av 2006-07-29 20:09:20 - Torbjörn Karlsson

OK

Kan du beskriva vad du ändrade i VB-koden för att få allt att funka?

Jag lyckades inte... :-(

Jag vill som sagt även loopa ut Attributvärden tillsammans med övriga värden...


<CONTACT label="värde" value="värde">eventuellt värde
<FirstName>Värde</FirstName>
<LastName>Värde</LastName>
<Company>Värde</Company>
<Address>Värde</Address>
<City>Värde</City>
<Email>Värde</Email>
</CONTACT>


Svara

Sv: Läsa attributvärden i XML-taggar

Postades av 2006-07-29 23:44:55 - Torbjörn Karlsson

Nu har jag lyckats loopa ut Attrributvärden, men när jag samtidigt försöker göra detsamma med övriga värden som ligger inom huvudtaggen <CONTACT>....</CONTACT> så tar de ut varandra. Moment 22 alltså!

ALLA TIPS ÄR VÄLKOMNA....



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FileName As String = "C:\Downloads\VBNET\XML\XMLRapport\AddressBook.xml"
Dim Reader As New XmlTextReader(FileName)
TextBox1.Text = ""
Dim LABEL As String
Dim VARDE As String

Do While Reader.Read
Select Case Reader.NodeType

Case XmlNodeType.Element

If Reader.Name.Equals("CONTACT") Then

' Attributvärden hämtas
Try
LABEL = Reader.Item("label")
VARDE = Reader.Item("value")
Catch ex As Exception

End Try

TextBox1.Text &= LABEL & " " & VARDE & vbCrLf

End If

End Select

Loop

End Sub
End Class


Svara

Sv:Läsa attributvärden i XML-taggar

Postades av 2006-07-31 10:29:47 - Ola Lindfeldt

Vad menar du med att de tar ut varandra?
Se min kommentar nedan hur du ska komma åt det underliggande.



Do While Reader.Read
Select Case Reader.NodeType

Case XmlNodeType.Element

If Reader.Name.Equals("CONTACT") Then

' Attributvärden hämtas
Try
LABEL = Reader.Item("label")
VARDE = Reader.Item("value")
Catch ex As Exception

End Try

TextBox1.Text &= LABEL & " " & VARDE & vbCrLf


' ------------ Här kan du göra Reader.Read()
' för att komma åt childelements till CONTACT
' t.ex. i en ny loop här (nästlad)




End If

End Select

Loop


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
464
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies