Angegebene Zeile aus XML Datei auslesen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jack30t.

    Angegebene Zeile aus XML Datei auslesen

    Hallo,
    ich möchte das mein Programm eine bestimmte Zeile aus einer XML Datei im Webbrowser ausliest und in eine Textbox schreibt.

    hier ein kleiner ausschnitt der XML Datei:

    XML-Quellcode

    1. <EyeId>10</EyeId>
    2. <MouthId>11</MouthId>
    3. <Money>40822</Money>
    4. <EyeColors>0x6699cc,0x000000,skincolor</EyeColors>


    Das Money soll dann in die Textbox geschrieben werden.

    schon mal danke im voraus
    Xml ist eine abfragefähige Datenstruktur, vorzugsweise in ein XElement einzulesen.
    aus so kleinen Schnippeln kann man aber keine effizienten Abfragen vorschlagen, sondern man muß die komplette Struktur kennen, zumindest den Teil, der zum gesuchten Element hinleitet.

    oder gugge Xml-Tutorial
    ok hier der komplette code:

    XML-Quellcode

    1. <LoginStatus2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://moviestarplanet.com/">
    2. <loginStatus>
    3. <status>Success</status>
    4. <actor>
    5. <ActorId>5004110</ActorId>
    6. <Name>jack30t</Name>
    7. <Level>11</Level>
    8. <SkinSWF>maleskin</SkinSWF>
    9. <SkinColor>15971965</SkinColor>
    10. <NoseId>4</NoseId>
    11. <EyeId>10</EyeId>
    12. <MouthId>11</MouthId>
    13. <Money>40881</Money>
    14. <EyeColors>0x6699cc,0x000000,skincolor</EyeColors>
    15. <MouthColors>skincolor,0xff0000,0</MouthColors>
    16. <Fame>573474</Fame>
    17. <Fortune>33667</Fortune>
    18. <FriendCount>652</FriendCount>
    19. <ProfileText/>
    20. <Created>2012-08-22T13:32:45.347</Created>
    21. <LastLogin>2013-03-03T10:39:25.119737</LastLogin>
    22. <Moderator>0</Moderator>
    23. <ProfileDisplays>2774</ProfileDisplays>
    24. <FavoriteMovie/>
    25. <FavoriteActor/>
    26. <FavoriteActress/>
    27. <FavoriteSinger/>
    28. <FavoriteSong/>
    29. <IsExtra>0</IsExtra>
    30. <HasUnreadMessages>1</HasUnreadMessages>
    31. <InvitedByActorId>-1</InvitedByActorId>
    32. <PollTaken>201</PollTaken>
    33. <ValueOfGiftsReceived>7870</ValueOfGiftsReceived>
    34. <ValueOfGiftsGiven>23260</ValueOfGiftsGiven>
    35. <NumberOfGiftsGiven>57</NumberOfGiftsGiven>
    36. <NumberOfGiftsReceived>20</NumberOfGiftsReceived>
    37. <NumberOfAutographsReceived>483</NumberOfAutographsReceived>
    38. <NumberOfAutographsGiven>194</NumberOfAutographsGiven>
    39. <TimeOfLastAutographGiven>2013-03-02T20:39:29.31</TimeOfLastAutographGiven>
    40. <FacebookId/>
    41. <BoyfriendId xsi:nil="true"/>
    42. <BoyfriendStatus>0</BoyfriendStatus>
    43. <MembershipPurchasedDate>2013-01-25T13:42:28.627</MembershipPurchasedDate>
    44. <MembershipTimeoutDate>2014-01-19T12:53:40.173</MembershipTimeoutDate>
    45. <MembershipGiftRecievedDate>2013-01-23T13:42:28.627</MembershipGiftRecievedDate>
    46. <BehaviourStatus>2</BehaviourStatus>
    47. <LockedUntil>2013-01-14T18:23:32.803</LockedUntil>
    48. <LockedText/>
    49. <BadWordCount>16</BadWordCount>
    50. <PurchaseTimeoutDate>2000-01-31T23:00:00</PurchaseTimeoutDate>
    51. <EmailValidated>2</EmailValidated>
    52. <RetentionStatus>0</RetentionStatus>
    53. <GiftStatus>0</GiftStatus>
    54. <MarketingNextStepLogins>0</MarketingNextStepLogins>
    55. <MarketingStep>8</MarketingStep>
    56. <TotalVipDays>416</TotalVipDays>
    57. <RecyclePoints>54</RecyclePoints>
    58. <EmailSettings>0</EmailSettings>
    59. <TimeOfLastAutographGivenStr>2013-03-02 20:39:29Z</TimeOfLastAutographGivenStr>
    60. <BestFriendId>5759807</BestFriendId>
    61. <BestFriendStatus>2</BestFriendStatus>
    62. <FriendCountVIP>229</FriendCountVIP>
    63. <ForceNameChange>0</ForceNameChange>
    64. <CreationRewardStep>4</CreationRewardStep>
    65. <CreationRewardLastAwardDate>2012-11-12T18:03:08.107</CreationRewardLastAwardDate>
    66. <NameBeforeDeleted/>
    67. <LastTransactionId>0</LastTransactionId>
    68. <AllowCommunication>1</AllowCommunication>
    69. <Diamonds>0</Diamonds>
    70. <PopUpStyleId>0</PopUpStyleId>
    71. <ActorRelationships>
    72. <ActorRelationship>
    73. <ActorRelationshipId>38299417</ActorRelationshipId>
    74. <ActorId>5004110</ActorId>
    75. <FriendId>7146258</FriendId>
    76. <RelationshipTypeId>1</RelationshipTypeId>
    77. <Status>1</Status>
    78. <OrderBy>0</OrderBy>
    79. </ActorRelationship>
    80. <ActorRelationship>
    81. <ActorRelationshipId>38418238</ActorRelationshipId>
    82. <ActorId>5004110</ActorId>
    83. <FriendId>5759807</FriendId>
    84. <RelationshipTypeId>1</RelationshipTypeId>
    85. <Status>1</Status>
    86. <OrderBy>0</OrderBy>
    87. </ActorRelationship>
    88. <ActorRelationship>
    89. <ActorRelationshipId>32201585</ActorRelationshipId>
    90. <ActorId>5004110</ActorId>
    91. <FriendId>4332217</FriendId>
    92. <RelationshipTypeId>1</RelationshipTypeId>
    93. <Status>2</Status>
    94. <OrderBy>0</OrderBy>
    95. </ActorRelationship>
    96. <ActorRelationship>
    97. <ActorRelationshipId>37712394</ActorRelationshipId>
    98. <ActorId>5004110</ActorId>
    99. <FriendId>5107970</FriendId>
    100. <RelationshipTypeId>1</RelationshipTypeId>
    101. <Status>2</Status>
    102. <OrderBy>0</OrderBy>
    103. </ActorRelationship>
    104. </ActorRelationships>
    105. </actor>
    106. <actorLocale>
    107. <string>de_DE</string>
    108. </actorLocale>
    109. <lbs>
    110. <string>lb1.moviestarplanet.de</string>
    111. <string>lb2.moviestarplanet.de</string>
    112. <string>lb3.moviestarplanet.de</string>
    113. <string>lb4.moviestarplanet.de</string>
    114. <string>lb5.moviestarplanet.de</string>
    115. <string>lb6.moviestarplanet.de</string>
    116. </lbs>
    117. <userType>Regular</userType>
    118. <adCountryMap>
    119. <AdvertisementCountryMapping>
    120. <ID>2</ID>
    121. <CountryCode>de</CountryCode>
    122. <Vendor>2</Vendor>
    123. <Type>3</Type>
    124. <UseVIP>true</UseVIP>
    125. <AppKey>2bb3b179</AppKey>
    126. </AdvertisementCountryMapping>
    127. </adCountryMap>
    128. <postLoginSeq>
    129. <ShowCampaign>false</ShowCampaign>
    130. <ShowVipRebuy>false</ShowVipRebuy>
    131. </postLoginSeq>
    132. <previousLastLogin>20130303</previousLastLogin>
    133. </loginStatus>
    134. <hDetails>a421bfc0247a16c21a7bc8608c57f78b</hDetails>
    135. </LoginStatus2>
    achjeh - ein xml-Dokument mit default-Namespace!

    Da hab ich noch nicht raus, wie man die eiglich sehr elegante XDocument-Syntax gscheit drauf anwendet.

    Das nervtötende ist, dass man in jedes XName-Pfadsegment, was man abfragt, den NameSpace mit einarbeiten muß - das sähe etwa so aus (die eigliche Methode ganz am SChluss) :
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private _Data As XElement = <LoginStatus2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://moviestarplanet.com/">
    2. <loginStatus>
    3. <status>Success</status>
    4. <actor>
    5. <ActorId>5004110</ActorId>
    6. <Name>jack30t</Name>
    7. <Level>11</Level>
    8. <SkinSWF>maleskin</SkinSWF>
    9. <SkinColor>15971965</SkinColor>
    10. <NoseId>4</NoseId>
    11. <EyeId>10</EyeId>
    12. <MouthId>11</MouthId>
    13. <Money>40881</Money>
    14. <EyeColors>0x6699cc,0x000000,skincolor</EyeColors>
    15. <MouthColors>skincolor,0xff0000,0</MouthColors>
    16. <Fame>573474</Fame>
    17. <Fortune>33667</Fortune>
    18. <FriendCount>652</FriendCount>
    19. <ProfileText/>
    20. <Created>2012-08-22T13:32:45.347</Created>
    21. <LastLogin>2013-03-03T10:39:25.119737</LastLogin>
    22. <Moderator>0</Moderator>
    23. <ProfileDisplays>2774</ProfileDisplays>
    24. <FavoriteMovie/>
    25. <FavoriteActor/>
    26. <FavoriteActress/>
    27. <FavoriteSinger/>
    28. <FavoriteSong/>
    29. <IsExtra>0</IsExtra>
    30. <HasUnreadMessages>1</HasUnreadMessages>
    31. <InvitedByActorId>-1</InvitedByActorId>
    32. <PollTaken>201</PollTaken>
    33. <ValueOfGiftsReceived>7870</ValueOfGiftsReceived>
    34. <ValueOfGiftsGiven>23260</ValueOfGiftsGiven>
    35. <NumberOfGiftsGiven>57</NumberOfGiftsGiven>
    36. <NumberOfGiftsReceived>20</NumberOfGiftsReceived>
    37. <NumberOfAutographsReceived>483</NumberOfAutographsReceived>
    38. <NumberOfAutographsGiven>194</NumberOfAutographsGiven>
    39. <TimeOfLastAutographGiven>2013-03-02T20:39:29.31</TimeOfLastAutographGiven>
    40. <FacebookId/>
    41. <BoyfriendId xsi:nil="true"/>
    42. <BoyfriendStatus>0</BoyfriendStatus>
    43. <MembershipPurchasedDate>2013-01-25T13:42:28.627</MembershipPurchasedDate>
    44. <MembershipTimeoutDate>2014-01-19T12:53:40.173</MembershipTimeoutDate>
    45. <MembershipGiftRecievedDate>2013-01-23T13:42:28.627</MembershipGiftRecievedDate>
    46. <BehaviourStatus>2</BehaviourStatus>
    47. <LockedUntil>2013-01-14T18:23:32.803</LockedUntil>
    48. <LockedText/>
    49. <BadWordCount>16</BadWordCount>
    50. <PurchaseTimeoutDate>2000-01-31T23:00:00</PurchaseTimeoutDate>
    51. <EmailValidated>2</EmailValidated>
    52. <RetentionStatus>0</RetentionStatus>
    53. <GiftStatus>0</GiftStatus>
    54. <MarketingNextStepLogins>0</MarketingNextStepLogins>
    55. <MarketingStep>8</MarketingStep>
    56. <TotalVipDays>416</TotalVipDays>
    57. <RecyclePoints>54</RecyclePoints>
    58. <EmailSettings>0</EmailSettings>
    59. <TimeOfLastAutographGivenStr>2013-03-02 20:39:29Z</TimeOfLastAutographGivenStr>
    60. <BestFriendId>5759807</BestFriendId>
    61. <BestFriendStatus>2</BestFriendStatus>
    62. <FriendCountVIP>229</FriendCountVIP>
    63. <ForceNameChange>0</ForceNameChange>
    64. <CreationRewardStep>4</CreationRewardStep>
    65. <CreationRewardLastAwardDate>2012-11-12T18:03:08.107</CreationRewardLastAwardDate>
    66. <NameBeforeDeleted/>
    67. <LastTransactionId>0</LastTransactionId>
    68. <AllowCommunication>1</AllowCommunication>
    69. <Diamonds>0</Diamonds>
    70. <PopUpStyleId>0</PopUpStyleId>
    71. <ActorRelationships>
    72. <ActorRelationship>
    73. <ActorRelationshipId>38299417</ActorRelationshipId>
    74. <ActorId>5004110</ActorId>
    75. <FriendId>7146258</FriendId>
    76. <RelationshipTypeId>1</RelationshipTypeId>
    77. <Status>1</Status>
    78. <OrderBy>0</OrderBy>
    79. </ActorRelationship>
    80. <ActorRelationship>
    81. <ActorRelationshipId>38418238</ActorRelationshipId>
    82. <ActorId>5004110</ActorId>
    83. <FriendId>5759807</FriendId>
    84. <RelationshipTypeId>1</RelationshipTypeId>
    85. <Status>1</Status>
    86. <OrderBy>0</OrderBy>
    87. </ActorRelationship>
    88. <ActorRelationship>
    89. <ActorRelationshipId>32201585</ActorRelationshipId>
    90. <ActorId>5004110</ActorId>
    91. <FriendId>4332217</FriendId>
    92. <RelationshipTypeId>1</RelationshipTypeId>
    93. <Status>2</Status>
    94. <OrderBy>0</OrderBy>
    95. </ActorRelationship>
    96. <ActorRelationship>
    97. <ActorRelationshipId>37712394</ActorRelationshipId>
    98. <ActorId>5004110</ActorId>
    99. <FriendId>5107970</FriendId>
    100. <RelationshipTypeId>1</RelationshipTypeId>
    101. <Status>2</Status>
    102. <OrderBy>0</OrderBy>
    103. </ActorRelationship>
    104. </ActorRelationships>
    105. </actor>
    106. <actorLocale>
    107. <string>de_DE</string>
    108. </actorLocale>
    109. <lbs>
    110. <string>lb1.moviestarplanet.de</string>
    111. <string>lb2.moviestarplanet.de</string>
    112. <string>lb3.moviestarplanet.de</string>
    113. <string>lb4.moviestarplanet.de</string>
    114. <string>lb5.moviestarplanet.de</string>
    115. <string>lb6.moviestarplanet.de</string>
    116. </lbs>
    117. <userType>Regular</userType>
    118. <adCountryMap>
    119. <AdvertisementCountryMapping>
    120. <ID>2</ID>
    121. <CountryCode>de</CountryCode>
    122. <Vendor>2</Vendor>
    123. <Type>3</Type>
    124. <UseVIP>true</UseVIP>
    125. <AppKey>2bb3b179</AppKey>
    126. </AdvertisementCountryMapping>
    127. </adCountryMap>
    128. <postLoginSeq>
    129. <ShowCampaign>false</ShowCampaign>
    130. <ShowVipRebuy>false</ShowVipRebuy>
    131. </postLoginSeq>
    132. <previousLastLogin>20130303</previousLastLogin>
    133. </loginStatus>
    134. <hDetails>a421bfc0247a16c21a7bc8608c57f78b</hDetails>
    135. </LoginStatus2>
    136. Private Function GetMoney() As String
    137. Dim ns = "http://moviestarplanet.com/"
    138. Dim xelMoney = _Data.Elements(XName.Get("loginStatus", ns)).Elements(XName.Get("actor", ns)).Elements(XName.Get("Money", ns)).First
    139. Return xelMoney.Value
    140. End Function

    also habich eine Resolve-Funktion gebaut, die dieses automatisiert:

    VB.NET-Quellcode

    1. Public Function Resolve(ByVal xel As XElement, ByVal path As String, Optional ByVal ns As String = Nothing) As IEnumerable(Of XElement)
    2. If ns Is Nothing Then ns = xel.GetDefaultNamespace.NamespaceName
    3. With DirectCast(path.Split("/"c), IList(Of String)).GetEnumerator
    4. .MoveNext() : Resolve = xel.Elements(XName.Get(.Current, ns))
    5. While .MoveNext
    6. Resolve = Resolve.Elements(XName.Get(.Current, ns))
    7. End While
    8. End With
    9. End Function
    10. Private Function GetMoneyBySimpleXPath() As String
    11. Return Resolve(_Data, "loginStatus/actor/Money").First.Value
    12. End Function