mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 24.07.2008 07:01 Benutzername: Passwort: Auto-Login

Thema: Regulärer Ausdruck für XML vom 05.02.2007

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Regulärer Ausdruck für XML
Seite: 1, 2, 3  Weiter
Autor Nachricht
jasmen


Dabei seit: 05.02.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 05.02.2007 17:41
Titel

Regulärer Ausdruck für XML

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich brauche einen regulären Ausdruck für folgendes XML-Format:
<PersonID>44444444444</PersonID>
<LastName>Müller</LastName>
<FirstName>Kenn</FirstName>
<TitleID>12345678903</TitleID>
<SalutationID>0</SalutationID>
<Sex>male</Sex>
<DateOfBirth>1954-09-09</DateOfBirth>
<EMail>mail@xxx.com</EMail>
Dabei möchte ich einfach den Text zwischen den Tags ausschneiden.

Kann mir jemand helfen? *Schnief*

Danke und schöne Grüsse
jasmen
  View user's profile Private Nachricht senden
schachbrett


Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Mo 05.02.2007 18:08
Titel

Antworten mit Zitat Zum Seitenanfang

Zum Ausschneiden zwischen zwei Tags kannst du sowas nehmen:

Code:
/<(.+?)>(.+?)<\/\1>/


Ergebnis steht dann in \2
  View user's profile Private Nachricht senden
CIX88


Dabei seit: 14.12.2005
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Mo 05.02.2007 20:52
Titel

Antworten mit Zitat Zum Seitenanfang

Hmmmmmmmmmmm .+?

.
entspricht einen beliebige Zeichen, ausser Newline (\n)

+
enstpricht dem Min/Max-Quantor {1,n}, erkennt also das vorhergehende Zeichen ein Mal oder beliebig oft

?
enstpricht dem Min/Max-Quantor {0,1}, erkennt also das vorhergehende Zeichen null oder ein Mal

Ja wie denn nun, soll er was finden oder nicht ?
.+? ergibt keinen Sinn Lächel
Entweder gierig .+ oder nicht gierig mit .*?

PHP stellt auch für XML schon Funktionen bereit, wodurch man auf Regex verzichten kann.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett


Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Mo 05.02.2007 21:46
Titel

Antworten mit Zitat Zum Seitenanfang

Doch, gibt wohl Sinn. Vielleicht ein Wunder? Lächel Noe, aber hinter 'nem anderen Quantifizierer dient es als nur lokaler gierig/genuegsam-Schalter. Der Unterschied zwischen + und * hat ja nix mit Gier zu tun, sondern nur mit dem minimalen Auftreten (0 oder 1 mal).
  View user's profile Private Nachricht senden
XSchinkenX


Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
Verfasst Mo 05.02.2007 22:18
Titel

Antworten mit Zitat Zum Seitenanfang

Leider kannste hierarchische Daten i.Allg. nur schlecht durch RegExp abgrasen. (Denkbar der Fall

Code:
<elem1>
  <elem1>
  </elem1>
<elem1>


Stabiler und einfacher ist es, einen Tokenizer zu schreiben oder auch direkt auf fertige XML-Bibliotheken zum Parsen der Daten zurückzugreifen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett


Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Mo 05.02.2007 22:51
Titel

Antworten mit Zitat Zum Seitenanfang

Naja, das geht zwar auch noch - aber du hast natuerlich voellig Recht. Allerdings hat der jasmen doch gar keine solche Schachtelung... der hat ja noch nicht mal 'nen richtigen XML-Baum - nur 'n paar Daten mit Tag-Lappen links+rechts Lächel
  View user's profile Private Nachricht senden
CIX88


Dabei seit: 14.12.2005
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Di 06.02.2007 08:46
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
paar Daten mit Tag-Lappen links+rechts

Stimmt allerdings: '~<([^>]+)>(.+)</\1>~s'
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
jasmen


Dabei seit: 05.02.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 06.02.2007 10:11
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo,
@all
vielen lieben Dank für die schnelle Hilfe!
Meine Datei sieht folgendermassen aus:
Code:

<n:Response xmlns:lib="urn:www-deutschepost-de:TestDomain/Library/1.0/common" xmlns:n="urn:www-deutschepost-de:TestDomain/Library/1.0/seekBookResponse">
   <Book>
      <Title>testA Practical Guide to Testing Object-Oriented Software</Title>
      <Author>
         <PersonID>11111111111</PersonID>
         <LastName>Sykes</LastName>
         <FirstName>David A.</FirstName>
         <TitleID>12345678901</TitleID>
         <SalutationID>2</SalutationID>
         <Sex>male</Sex>
         <DateOfBirth>1970-01-01</DateOfBirth>
         <EMail>d.skyes@tbd.com</EMail>
      </Author>
      <Author>
         <PersonID>22222222222</PersonID>
         <LastName>McGregor</LastName>
         <FirstName>John D.</FirstName>
         <TitleID>12345678901</TitleID>
         <SalutationID>1</SalutationID>
         <Sex>male</Sex>
         <DateOfBirth>1950-12-24</DateOfBirth>
         <EMail>j.McGregor@tbd.com</EMail>
      </Author>
      <ISBN>0-201-32564-0</ISBN>
      <Publisher>Addison Wesley</Publisher>
      <Year_published>2001</Year_published>
   </Book>
   <Book>
      <Title>Agile Software Development Ecosystems</Title>
      <Author>
         <PersonID>33333333333</PersonID>
         <LastName>Highsmith</LastName>
         <FirstName>Jim</FirstName>
         <TitleID>12345678902</TitleID>
         <SalutationID>2</SalutationID>
         <Sex>male</Sex>
         <DateOfBirth>1965-02-28</DateOfBirth>
         <EMail>j.highsmith@tbd.com</EMail>
      </Author>
      <ISBN>0-201-76043-6</ISBN>
      <Publisher>Addison Wesley</Publisher>
      <Year_published>2002</Year_published>
   </Book>
</n:Response>


Was für einen reg.Ausdruck soll ich hier verwenden, um die Daten zwischen den Tags rauszuholen?

Danke
jasmen
  View user's profile Private Nachricht senden
 
Ähnliche Themen regulärer ausdruck gesucht, um XML-tags zu formen
Regulärer Ausdruck gesucht
Regulärer Ausdruck / Hilfe
[PHP] Regulärer Ausdruck gesucht
SQL-Statement und regulärer Ausdruck
Appl, die zu XML-Schema Formular generiert, und XML schreibt
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.