Thema: Delphi Parsen mit TXMLDocument

Einzelnen Beitrag anzeigen

rd3
(Gast)

n/a Beiträge
 
#1

Parsen mit TXMLDocument

  Alt 30. Dez 2008, 17:56
Hallo,

ich habe mal eine Frage: Wie könnte ich folgenden XML Quelltext so parsen, dass ich folgende Stellen auslesen kann (über eine Schleife z.B.)...

Auszulesende Stellen:

<concept>ABC</concept>
<transac type="create">User1</transac>
<date>2003-07-14T13:05:29</date>
<language type="de" lang="DE"/>
<term>Haus</term>
<descrip type="status">bevorzugt</descrip>
aus
<transacGrp>
<transac type="create">DF</transac>
<date>2007-01-01T13:54:03</date>
<transacGrp>
<transac type="change">DF</transac>
<date>2008-08-01T13:54:03</date>
</transacGrp>

XML-Code:
<?xml version="1.0" encoding="UTF-16"?>
<mtf>
   <conceptGrp>
      <concept>ABC</concept>
      <transacGrp>
         <transac type="create">User1</transac>
         <date>2003-07-14T13:05:29</date>
      </transacGrp>
      <transacGrp>
         <transac type="change">User2</transac>
         <date>2005-01-20T18:03:01</date>
      </transacGrp>
      <languageGrp>
         <language type="de" lang="DE"/>
         <termGrp>
            <term>Haus</term>
            <descripGrp>
               <descrip type="status">bevorzugt</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="FR"/>
         <termGrp>
            <term>Maison</term>
            <descripGrp>
               <descrip type="status">preferrer</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="EN"/>
         <termGrp>
            <term>House</term>
            <descripGrp>
               <descrip type="status">preferred</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
   </conceptGrp>
   <conceptGrp>
      <concept>ABC</concept>
      <transacGrp>
         <transac type="create">User1</transac>
         <date>2003-07-14T13:05:29</date>
      </transacGrp>
      <transacGrp>
         <transac type="change">User2</transac>
         <date>2005-01-20T18:03:01</date>
      </transacGrp>
      <languageGrp>
         <language type="de" lang="DE"/>
         <termGrp>
            <term>Haus</term>
            <descripGrp>
               <descrip type="status">bevorzugt</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="FR"/>
         <termGrp>
            <term>Maison</term>
            <descripGrp>
               <descrip type="status">preferrer</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="EN"/>
         <termGrp>
            <term>House</term>
            <descripGrp>
               <descrip type="status">preferred</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
   </conceptGrp>
   <conceptGrp>
      <concept>ABC</concept>
      <transacGrp>
         <transac type="create">User1</transac>
         <date>2003-07-14T13:05:29</date>
      </transacGrp>
      <transacGrp>
         <transac type="change">User2</transac>
         <date>2005-01-20T18:03:01</date>
      </transacGrp>
      <languageGrp>
         <language type="de" lang="DE"/>
         <termGrp>
            <term>Haus</term>
            <descripGrp>
               <descrip type="status">bevorzugt</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="FR"/>
         <termGrp>
            <term>Maison</term>
            <descripGrp>
               <descrip type="status">preferrer</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="EN"/>
         <termGrp>
            <term>House</term>
            <descripGrp>
               <descrip type="status">preferred</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
   </conceptGrp>
   <conceptGrp>
      <concept>ABC</concept>
      <transacGrp>
         <transac type="create">User1</transac>
         <date>2003-07-14T13:05:29</date>
      </transacGrp>
      <transacGrp>
         <transac type="change">User2</transac>
         <date>2005-01-20T18:03:01</date>
      </transacGrp>
      <languageGrp>
         <language type="de" lang="DE"/>
         <termGrp>
            <term>Haus</term>
            <descripGrp>
               <descrip type="status">bevorzugt</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="FR"/>
         <termGrp>
            <term>Maison</term>
            <descripGrp>
               <descrip type="status">preferrer</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
      <languageGrp>
         <language type="de" lang="EN"/>
         <termGrp>
            <term>House</term>
            <descripGrp>
               <descrip type="status">preferred</descrip>
            </descripGrp>
            <descripGrp>
               <descrip type="source">XY</descrip>
            </descripGrp>
            <transacGrp>
               <transac type="create">DF</transac>
               <date>2007-01-01T13:54:03</date>
            </transacGrp>
            <transacGrp>
               <transac type="change">DF</transac>
               <date>2008-08-01T13:54:03</date>
            </transacGrp>
         </termGrp>
      </languageGrp>
      </languageGrp>
   </conceptGrp>
</mtf>
Die roten Stellen würde ich gerne für eine beliebig große XML-Datei über TXMLDocument auslesen können... Kann mir da einer bitte helfen?

Vielen Dank vorab und schöne Feiertage...
  Mit Zitat antworten Zitat