Michael_User
Grünschnabel
Hallo !
Muss die Struktur eines XML-Files angpasst werden,
können Anwendungen die diese Strutur voraussetzen, nicht mehr damit arbeiten.
z.B. eine XSLT, die mit XPath arbeitet.
Im vorliegenden Fall, muss eine Konfiguration erweitert werden. Prinzip:
Aus
<Config>
<Data>Hello World !</Data>
</Config>
wird
<Config>
<Datas>
<Data>Hello World !</Data>
<Data>Hello User !</Data>
</Datas>
</Config>
Und schon passen XPath-Zugriffe nicht mehr.
Gedachte Abhilfe:
Das XML-File selbst bietet eine Art Schnittstelle an ("XML-Getter"),
welche dem User Informationen anbietet, ohne das er die Struktur kennen muss,
und im vorliegenden Fall nachträglich anpassen muss.
<Config>
<XPaths>
<XPath name="showWorld" >//Datas/Data[ @name='world' ]</XPath>
</XPaths>
<Datas>
<Data name"World" >Hello World !</Data>
<Data name"User" >Hello User !</Data>
</Datas>
</Config>
Statt nun
<xsl:value-of select="//Datas/Data[@name='World']" />
würde man nun festschreiben:
<xsl:value-of select="//XPath[@name='showWorld']" />
Mein Problem:
Das Eergebnis wird natürlich nicht als XPath-Kommando gewertet,
sondern als String ohne Bedeutung.
Wie könnte man einen Rückgabestring,
wiederum als XPath-Kommando einsetzen ?
Weiterer smarter Vorteil:
In xslt werden die XPath-Ausdrücke lesbarer.
Muss die Struktur eines XML-Files angpasst werden,
können Anwendungen die diese Strutur voraussetzen, nicht mehr damit arbeiten.
z.B. eine XSLT, die mit XPath arbeitet.
Im vorliegenden Fall, muss eine Konfiguration erweitert werden. Prinzip:
Aus
<Config>
<Data>Hello World !</Data>
</Config>
wird
<Config>
<Datas>
<Data>Hello World !</Data>
<Data>Hello User !</Data>
</Datas>
</Config>
Und schon passen XPath-Zugriffe nicht mehr.
Gedachte Abhilfe:
Das XML-File selbst bietet eine Art Schnittstelle an ("XML-Getter"),
welche dem User Informationen anbietet, ohne das er die Struktur kennen muss,
und im vorliegenden Fall nachträglich anpassen muss.
<Config>
<XPaths>
<XPath name="showWorld" >//Datas/Data[ @name='world' ]</XPath>
</XPaths>
<Datas>
<Data name"World" >Hello World !</Data>
<Data name"User" >Hello User !</Data>
</Datas>
</Config>
Statt nun
<xsl:value-of select="//Datas/Data[@name='World']" />
würde man nun festschreiben:
<xsl:value-of select="//XPath[@name='showWorld']" />
Mein Problem:
Das Eergebnis wird natürlich nicht als XPath-Kommando gewertet,
sondern als String ohne Bedeutung.
Wie könnte man einen Rückgabestring,
wiederum als XPath-Kommando einsetzen ?
Weiterer smarter Vorteil:
In xslt werden die XPath-Ausdrücke lesbarer.