vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
RegEx und XML-Struktur 
Autor: Maas
Datum: 17.01.10 12:09

Hallo,
irgendwie will ich es nicht hinbekommen. Ich versuche aus einer XML-Struktur den Teil von einem Starttag bis zum nächsten Endtag auszulesen. Es ist gesichert, dass das gleiche Tag in der tieferen Hierarchie nicht nochmal vorkommt. Dabei fehlt mir der Ausdruck für "Ein beliebig langen Textteil mit beliebigen Zeichen, aber ohne eine bestimmte Zeichenfolge(!)" (die Zeichenfolge wäre dann das Endtag).
Bisher habe ich folgenden Ausdruck:
<MyTag >.*(?<!</MyTag>)</MyTag>
Leider werden mir hier alle MyTags zusammen im Match zurück gegeben.
Was muss ich noch verändern, um nur einen Teil zu bekommen, also das Endtag im Ganzen ausschließen?

Aus folgender Beispiel-XML:
<?xml version="1.0" encoding="utf-8"?>
<Tags>
  <MyTag >
    <MySubTag>Test1</MySubTag>
    <MySubTag>Test2</MySubTag>
    <MySubTag>Test3</MySubTag>
  </MyTag>
  <MyTag >
    <MySubTag>Test1</MySubTag>
    <MySubTag>Test2</MySubTag>
    <MySubTag>Test3</MySubTag>
  </MyTag>
  <MyTag >
    <MySubTag>Test1</MySubTag>
    <MySubTag>Test2</MySubTag>
    <MySubTag>Test3</MySubTag>
  </MyTag>
</Tags>
Ich habe beim Einlesen des Texts .Replace(vbCrLf,"") benutzt, da eine Leerzeile nicht als normales allgemeines Zeichen(.) erkannt wird.

Als Ergebnis sollte dann im Match stehen:
  <MyTag >
    <MySubTag>Test1</MySubTag>
    <MySubTag>Test2</MySubTag>
    <MySubTag>Test3</MySubTag>
  </MyTag>
Danke im Voraus

Maas

Achso, nur schon im Voraus: Mir ist wohl bekannt, dass man zum Einlesen von XMLs auch den XML reader benutzen kann, aber darum geht es hier nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RegEx und XML-Struktur 
Autor: ModeratorDaveS (Moderator)
Datum: 17.01.10 12:32

Aber warum, wenn es so einfach mit den Xml Werzeugen wäre?

        Dim xd As New Xml.XmlDocument
        xd.Load(pfad)
 
        For Each xn As Xml.XmlNode In xd.SelectNodes("//Tags/MyTag")
            Debug.WriteLine(xn.InnerXml)
        Next

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RegEx und XML-Struktur 
Autor: Maas
Datum: 17.01.10 12:35

Wie gesagt ist mir das bekannt, aber darum geht es hier leider nicht (Ganz unten).
Mir geht es in erster Linie um RegEx und um den Ausdruck für "Ein beliebig langen Textteil mit beliebigen Zeichen, aber ohne eine bestimmte Zeichenfolge"

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RegEx und XML-Struktur 
Autor: keco
Datum: 17.01.10 12:44

Das hier solle als Pattern reichen:
<MyTag >.*?</MyTag>
Als RegexOption muss aber SingleLine gewählt sein.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RegEx und XML-Struktur 
Autor: Maas
Datum: 17.01.10 12:50

Vielen Dank!
Manchmal ist es einfacher als man denkt.

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RegEx und XML-Struktur 
Autor: ModeratorDaveS (Moderator)
Datum: 17.01.10 13:17

Oh, righty ho.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel