aus XML Datei Daten lesen und in einer andere XML Datei einlesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • aus XML Datei Daten lesen und in einer andere XML Datei einlesen

    Hallo, ich versuche gerade meine ersten Schritte mit XML.
    Nun habe ich eine XML mit Räumen in verschiedenen Häusern und jeder Raum soll eine Koordinate erhalten.
    Die Koordinaten habe ich in einer KML Datei, diese habe ich in eine XML konvertiert.
    Somit möchte ich nun aus der Koordinaten XML die koordinaten in die xml räume bekommen.

    Beispiel der Koordinaten XML:

    Quellcode

    1. <Placemark>
    2. <name>404</name>
    3. <Point>
    4. <coordinates>13.35461889518278,52.54505163544181,0</coordinates>
    5. </Point>
    6. <Placemark>


    Beispiel der Räume XML:

    Quellcode

    1. <Raum>
    2. <ID-Raum>12</ID-Raum>
    3. <Haus>Haus Bauwesen</Haus>
    4. <Raumnummer>418</Raumnummer>
    5. <Lat>52.54523244103065</Lat> <<<<<------------------per Hand eingetragen (will es aber automatisch hinbekommen)
    6. <Long>13.354933719999</Long>
    7. </Raum>
    8. <Raum>
    9. <ID-Raum>13</ID-Raum>
    10. <Haus>Haus Bauwesen</Haus>
    11. <Raumnummer>404</Raumnummer> <<<<-------------------------- da soll dann die Koordinate automatisch eingetragen werden
    12. </Raum>
    Alles anzeigen


    Könnt ihr mir vielleicht weiterhelfen???
  • guten morgen,

    ich weiß nicht ob es den anderen lesern auch so geht, aber ich glaube ich hab deine frage(n) nicht ganz verstanden...
    was steht in dem xml file koordinaten und was steh in dem xml file räume? willst du die koordinate aus dem xml file koordinaten in das xml file räume schreiben wo die raumnummer bzw. name übereinstimmt?
    mit was willst du das machen? java? c#?
    oder verstehe ich das komplett falsch?


    thx, truespin
  • kleiner umweg mit ENTITY

    eine umweg über ENTITY
    erzeugen einer gesamt xml beider Dateien

    gesamt.xml

    XML-Quellcode

    1. <?xml version="1.0"?>
    2. <!DOCTYPE root [
    3. <!ELEMENT root ((Raumeintrag, Orteintrag))>
    4. <!ELEMENT name (#PCDATA)>
    5. <!ELEMENT coordinates (#PCDATA)>
    6. <!ELEMENT Raumnummer (#PCDATA)>
    7. <!ELEMENT Raumeintrag ((Raum+))>
    8. <!ELEMENT Raum ((ID-Raum, Haus, Raumnummer, (Lat, Long)?))>
    9. <!ELEMENT Point ((coordinates))>
    10. <!ELEMENT Placemark ((name, Point))>
    11. <!ELEMENT Orteintrag ((Placemark))>
    12. <!ELEMENT Long (#PCDATA)>
    13. <!ELEMENT Lat (#PCDATA)>
    14. <!ELEMENT ID-Raum (#PCDATA)>
    15. <!ELEMENT Haus (#PCDATA)>
    16. <!ENTITY raum SYSTEM "raum.xml">
    17. <!ENTITY ort SYSTEM "koordinaten.xml">
    18. ]>
    19. <root>
    20. &raum;
    21. &ort;
    22. </root>
    Alles anzeigen


    daraus folgt
    raum.xml

    Quellcode

    1. <Raumeintrag>
    2. <Raum>
    3. <ID-Raum>12</ID-Raum>
    4. <Haus>Haus Bauwesen</Haus>
    5. <Raumnummer>418</Raumnummer>
    6. <Lat>52.54523244103065</Lat>
    7. <!--per Hand eingetragen (will es aber automatisch hinbekommen)-->
    8. <Long>13.354933719999</Long>
    9. </Raum>
    10. <Raum>
    11. <ID-Raum>13</ID-Raum>
    12. <Haus>Haus Bauwesen</Haus>
    13. <Raumnummer>404</Raumnummer>
    14. <!-- da soll dann die Koordinate automatisch eingetragen werden -->
    15. </Raum>
    16. </Raumeintrag>
    Alles anzeigen

    und koordinaten.xml

    Quellcode

    1. <Orteintrag>
    2. <Placemark>
    3. <name>404</name>
    4. <Point>
    5. <coordinates>13.35461889518278,52.54505163544181,0</coordinates>
    6. </Point>
    7. </Placemark>
    8. </Orteintrag>



    nun kann mit hilfe von xslt wert überprüft und geändertwerden

    XML-Quellcode

    1. <?xml version="1.0"?>
    2. <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output method="xml" indent="yes"/>
    4. <xsl:template match="/">
    5. <root1>
    6. <xsl:apply-templates select="//Raum"/>
    7. </root1>
    8. </xsl:template>
    9. <xsl:template match="Raum">
    10. <eintrag>
    11. <xsl:value-of select="Raumnummer"/>
    12. </eintrag>
    13. </xsl:template>
    14. </xsl:stylesheet>
    Alles anzeigen


    ergebnis


    XML-Quellcode

    1. <?xml version='1.0' ?>
    2. <root1>
    3. <eintrag>418</eintrag>
    4. <eintrag>404</eintrag>
    5. </root1>




    Helmut Hagemann
    Helmut Hagemann
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut.