Komplexe XML einlesen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Komplexe XML einlesen

Beitrag von julian (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

ich würde gerne eine etwas komplexere XML einlesen. Die Datei kann dabei folgende Struktur haben:

<Stammdaten>
--<Name>Mustermann</Name>
---<Adresse>
------<Strasse>Berliner Platz</Strasse>
------<PLZ>123456</PLZ>
----</Adresse>
--<Nummer>654321</Nummer>
</Stammdaten>

- für die Leerzeichen...

Einlesen als String usw. ist kein Problem. Allderings bekomme ich mit der XSLT die Adresse nicht eingelesen. Name und Nummer, also von der ersten Ebene, werden ausgelesen. Die Daten unter Adresse bekomme ich aber nicht raus.

--<xsl:template match="/">
---<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
------<asx:values>
-------<IStammdaten>
--------<xsl:apply-templates select="//Stammdaten"/>
-------</IStammdaten>
-----</asx:values>
---</asx:abap>
--</xsl:template>

--<xsl:template match="Stammdaten">
----<item>
-----<NAME>
-------<xsl:value-of select="NAME"/>
------</NAME>
------<ADRESSE>
--------<STRASSE>
---------<xsl:value-of select="STRASSE"/>
--------</STRASSE>
--------<PLZ>
---------<xsl:value-of select="PLZ"/>
--------</PLZ>
------</ADRESSE>
------<NUMMER>
--------<xsl:value-of select="NUMMER"/>
------</NUMMER>
----</item>
--</xsl:template>

Es liegt wahrscheinlich einfach an der Navigation, hab auch schon ein paar Varianten ausprobiert. Klappt aber einfach nicht.

Bin für jeden Tipp dankbar.

Viele Grüße

Julian

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Komplexe XML einlesen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Julian,

soweit ich weiß, sind sämtliche Bezeichner im XML groß-/kleinschreibungsrelevant. Wenn ein Element 'Name' heißt, dürfte es mit 'NAME' nicht gefunden werden.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Komplexe XML einlesen

Beitrag von julian (ForumUser / 3 / 0 / 0 ) »
Hallo Ereglam,

die Groß- und Kleinschreibung habe ich in dem Beispiel nicht ganz berücksichtigt. In meiner echten Datei stimmt das. Leider bin ich noch nicht viel weiter gekommen.

Hat noch jemand eine Idee?

Vielen Dank & Grüße

Julian

Re: Komplexe XML einlesen

Beitrag von julian (ForumUser / 3 / 0 / 0 ) »
Hallo,

leider tappe ich weiterhin im dunkeln. Ich versuch mein Problem einfach nochmal darzustellen. Habs vielleicht einfach nicht ganz schlüssig erklärt.

In meiner Quell-XML können Daten zu verschiedenen Sachverhalten enthalten sein. Z.b. Stamm- und Bewegungsdaten. Mit meiner XSLT-Transformation würde ich gerne die einzelnen Daten getrennt einlesen. Es gibt als eine Transformation für Stamm- und eine für Bewegungsdaten.

Mit Templates sollte das ja klappen. Die Navigation zu den einzelnen Werten klappt beim Testen der Transformation auch – es wird die gewünschte Struktur dargestellt. Mein Problem ist nun, dass Werte eines Elements in dieser Form:

<VERFAHREN>¶
--<FIRMA>Microsoft</FIRMA>¶
--<PRODUKT>Windows</PRODUKT>
--<VERSION>7</VERSION>
</VERFAHREN>¶

nicht in meiner Tabelle gespeichert werden.

g_xml enthält die XML als String,
gt_res enthält Referenzen auf interne Tabellen.

CALL TRANSFORMATION xslt
SOURCE XML g_xml
RESULT (gt_res).

Passendes XSLT:
IKOPF ist auch der Name für die Referenz auf die interne Tabelle

<xsl:template match="/">
----<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
-----<asx:values>
------<IKOPF>
-------<xsl:apply-templates select="//KOPF"/>
------</IKOPF>
-----</asx:values>
----</asx:abap>
</xsl:template>

<xsl:template match="KOPF">
----<item>
-----<VERFAHREN>
--------<FIRMA>
--------<xsl:value-of select="FIRMA"/>
--------</FIRMA>
--------<PRODUKT>
--------<xsl:value-of select="PRODUKT"/>
--------</PRODUKT>
--------<VERSION>
--------<xsl:value-of select="VERSION"/>
--------</VERSION>
-----</VERFAHREN>
-----<SCHNITTSTELLENVERSION>
------<xsl:value-of select="SCHNITTSTELLENVERSION"/>
-----</SCHNITTSTELLENVERSION>
----</item>
</xsl:template>

Schnittstellenversion wird einwandfrei eingelesen. Firma, Produkt und Version werden zwar im Test von der Struktur her dargestellt, aber keine Werte werden in die Tabelle geschrieben.

Hat jemand für mein Problem eine zündende Idee oder ein kleines Beispiel? Konnte leider nur Beispiele für einfache XSLTs finden.

Bin für jede Hilfe dankbar.

Viele Grüße
Julian

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2519
Views
Komplexe SQL-Abfrage
von km216 » 14.03.2011 15:52 • Verfasst in ABAP® für Anfänger
6
Antw.
2558
Views
Komplexe Abfrage - jemand eine Lösung?
von b0rsti » 19.02.2008 10:28 • Verfasst in ABAP® für Anfänger
1
Antw.
1730
Views
Einfache Workarea in komplexe Workarea kopieren
von dawns » 04.07.2007 14:11 • Verfasst in ABAP® für Anfänger
10
Antw.
19201
Views
csv einlesen
von bohne » 05.12.2006 14:37 • Verfasst in ABAP® für Anfänger
0
Antw.
1131
Views
XML Dateien einlesen!
von Rabea1103 » 02.03.2009 11:32 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1781
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2322

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1781
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2322

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 356
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 956
MS-Word als Editor
letzen Monat von tekko 1 / 4466