You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, June 16th 2009, 11:22am

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:

XML Code

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


Beispiel der Räume XML:

XML Code

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


Könnt ihr mir vielleicht weiterhelfen???

2

Wednesday, June 17th 2009, 7:51am

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

3

Wednesday, June 17th 2009, 9:01am

Moin,
wenn du die Frage im XML Forum stellst, könnte man vermuten du willst mit XSLT arbeiten.
Wobei XSLT bestimmt nicht die gängigste Lösung ist, da man dazu XSLT Prozessoren benötigt.

4

Friday, June 19th 2009, 4:45pm

kleiner umweg mit ENTITY

eine umweg über ENTITY
erzeugen einer gesamt xml beider Dateien

gesamt.xml

Source code

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


daraus folgt
raum.xml

Source code

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

und koordinaten.xml

Source code

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



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

Source code

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


ergebnis


Source code

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




Helmut Hagemann

Social bookmarks