Announcement

Collapse
No announcement yet.

Alle Zeilen mit bestimmtem Element löschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Alle Zeilen mit bestimmtem Element löschen

    Hi,

    ich habe keine Ahnung von XML, daher der Post hier.

    Ich möchte eine Datei im XML Format in SAP hochladen. Die Datei sieht wie folgt aus:

    <CustomsCommodityClassificationCode>3901</CustomsCommodityClassificationCode>
    <CatalogueItemID>0000006036</CatalogueItemID>
    <TypeCode>1</TypeCode>
    <ParentCatalogueItemID>0000006034</ParentCatalogueItemID>
    <BasicText>
    <TypeCode>10052</TypeCode>
    <ContentText languageCode="DE">Polymere des Ethylens, in Primärformen</ContentText>
    </BasicText>
    <BasicText>
    <TypeCode>10052</TypeCode>
    <ContentText languageCode="EN">Polymers of ethylene, in primary forms</ContentText>
    </BasicText>
    </Item>
    <Item>
    <CustomsCommodityClassificationCode>390110</CustomsCommodityClassificationCode>
    <CatalogueItemID>0000006161</CatalogueItemID>
    <TypeCode>1</TypeCode>
    <ParentCatalogueItemID>0000006036</ParentCatalogueItemID>
    <BasicText>
    <TypeCode>10052</TypeCode>
    <ContentText languageCode="DE">null</ContentText>
    </BasicText>
    <BasicText>
    <TypeCode>10052</TypeCode>
    <ContentText languageCode="EN">null</ContentText>
    </BasicText>
    </Item>

    Ich möchte nun bevor ich die Datei ins SAP hochlade im gesamten Dokument das Element <ParentCatalogueItemID> löschen. Wie geht das im Besten in Masse. Die Datei hat über 3000 Zeilen mit diesem Element.

    Danke für die Hilfe.

  • #2
    - Mit einer Programmiersprache deiner Wahl
    - Mit einem Texteditor wie bsp. Textpad, der reguläre Ausdrücke kann
    - Mit einer XML Transformation und einem Parser
    Christian

    Comment


    • #3
      Zur Transformation von XML-Dokumenten kann man z.B. XSLT benutzen, die aktuelle Version seit 2017 ist XSLT 3.0, wird auch auf diversen Plattformen (Java durch Saxon HE Java, derzeitige Version 11 und 12, .NET durch Saxon HE .NET, letzte Version 10.9, C/C++/Python durch SaxonC 12 https://pypi.org/project/saxonche/, JavaScript und Node.js durch SaxonJS 2.5) gut unterstützt; eine Beispiel-Transformation ist

      Code:
      <?xml version="1.0" encoding="utf-8"?>
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="3.0"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        expand-text="yes">
      
        <xsl:output indent="yes"/>
      
        <xsl:strip-space elements="*"/>
      
        <xsl:mode on-no-match="shallow-copy"/>
      
        <xsl:template match="ParentCatalogueItemID"/>
      
      </xsl:stylesheet>
      Also zur Massenverarbeitung Saxon installieren (z.b. Saxon HE Java 11.6 von https://github.com/Saxonica/Saxon-HE...xonHE11-6J.zip), dann ausführen:
      Code:
      java -jar saxon-he-11.6.jar -s:xmlDokument.xml -xsl:xsltTransformation.xsl -o:xmlResultat.xml
      Beispiel mittels SaxonJS 2.5 im Browser:
      Zuletzt editiert von Martin Honnen; 23.09.2023, 15:59.

      Comment

      Working...
      X