Hi,
seit gestern kämpfe ich damit, per PHP in einem XML-Dokument zu navigieren. Wirkliche Schwierigekeiten bereiten mir dabei Verweise. Vereinfacht sieht das Dokument so aus:
<?xml version="1.0" encoding="ISO-8859-1"?>
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink">
gml:featureMember<myFeature>
gml:nameTest1</gml:name>
gml:Point
<gml:coordinates gml:id="p1">12.141129936,50.398273477,0</gml:coordinates>
</gml:Point>
</myFeature></gml:featureMember>
gml:featureMember<myFeature>
gml:nameTest2</gml:name>
<gml:Point xlink:href="#p1"/>
</myFeature></gml:featureMember>
</wfs:FeatureCollection>
Mein Problem ist nun, dem Verweis p1 zu folgen. Trotz rumsurfens auf diversen Seiten bin ich mir dabei nicht mal sicher, ob der Link überhaupt korrekt so ist oder ob der Ersteller sich da was ausgedacht hat.
Mit dem XPath-Ausdruck //gml:coordinates[@gml:id="p1"] komme ich zwar ans Zeil. Aber erstens muss ich dazu das "#" entfernen.
Und zweitens bin ich mir auch nicht sicher, ob es überhaupt an mir hängen bleiben kann solche Links zu interpretieren. Das wird ja grauenhaft wenn noch XPointer und so Zeug vorkommen. Muß das Rad jedes mal neu programmiert werden?
Wenn in jedem beliebigen Element ein Link vorkommen kann, ist es ja an sich unmöglich per XPath eine ganze Hierarchie hinunter zu gehen. Auf jeder Ebene müsste ich ja prüfen ob sie nicht in einem Link ended.
Ich hab's bisher in DOM und SimpleXML versucht.
Ciao Samson