tag:forum.selfhtml.org,2005:/self
Frage zum Wiki-Artikel XML/XSL/XPath/Funktionen: geschweifte Klammern – SELFHTML-Forum
2021-05-05T19:09:29Z
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788124#m1788124
guest
2021-05-05T16:14:07Z
2021-05-05T16:14:07Z
Frage zum Wiki-Artikel XML/XSL/XPath/Funktionen: geschweifte Klammern
<p>Im allerletzten Absatz (unparsed-entity-uri()) wird bzgl. der geschweiften Klammern auf XPath-Syntax verwiesen, dort ist aber nichts bzgl. geschweifter Klammern zu finden, fehlt hier etwas?</p>
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788126#m1788126
Rolf B
2021-05-05T17:00:03Z
2021-05-05T17:18:07Z
Frage zum Wiki-Artikel XML/XSL/XPath/Funktionen: geschweifte Klammern
<p>Hallo guest,</p>
<p>was der Artikel nicht verrät: der Link führt zu XPath, also das, was in den geschweiften Klammern steht.</p>
<p>Was er auch nirgends verrät: die geschweiften Klammern sind Teil von XSLT, nicht von XPath. Leider führt der XSL-Bereich des Wikis nicht auf, was diese geschweiften Klammern sollen. Das aufzuschreiben, ist dem Autor durchgegangen: Wenn Du in einem Template einen XPath-Ausdruck einsetzen willst, um einen Wert abzurufen, dann schreibst Du den in geschweifte Klammern.</p>
<p>Man nennt das Attributwert-Templates, die verwendest Du, wenn Du das Ergebnis eines XPath-Ausdrucks direkt in die Ausgabe übernehmen willst. Das ist einfacher als Attribute mit xsl:attribute hinzuzufügen (wobei ich nicht wirklich Ahnung von XSL habe und mir das gerade selbst anlese). Ich traue mir auch nicht zu, das qualifiziert ins Wiki einzuarbeiten.</p>
<p>Der Text im Wiki ist über 20 Jahre alt; ich habe ihn in einem SelfHTML 8.0 Mirror der Humboldt-Uni in Berlin von 2001 gefunden. Dieser Text wurde nie überarbeitet, und von denen, die sich ums Wiki kümmern, vermutlich auch nie wirklich erfasst. Matthias hat ihn 2015 einfach aus dem alten SelfHTML ins Wiki übernommen.</p>
<p>Der Umstand, dass dieser Text eigentlich nie überarbeitet wurde, also sozusagen write-only ist, dürfte eine Menge über seine Relevanz besagen .</p>
<p>Aber ich mag da auch einfach nur ein Ignorant sein und es gibt eine lebendige XSL-Community (die sich hier im Forum aber zwei Personen beschränkt: eine, die Fragen stellt und eine, die darauf Antworten weiß).</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - obstruxi
</div>
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788128#m1788128
Rolf B
2021-05-05T17:27:38Z
2021-05-05T17:28:04Z
Frage an alle - XSLT und Attributwert-Templates
<p>Hallo an alle XSLT Kenner,</p>
<p>sind die folgenden XSLT-Konstrukte gleichwertig? Oder gibt es da Bedeutungsunterschiede - abgesehen von möglichem Unfug, den ich in meiner XML Unkenntnis verzapft haben könnte...</p>
<p>Ich möchte im Wiki gern etwas hinzufügen, um die Frage des TO zu klären . aber keinen Unsinn schreiben.</p>
<p>(1) src Attribut explizit hinzufügen, mit explizitem value-of</p>
<pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bild<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>attribute</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>src<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@quelle<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>attribute</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span>
</code></pre>
<p>(2) src Attribut explizit hinzufügen, mit Wert via select-Attribut</p>
<pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bild<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>attribute</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>src<span class="token punctuation">"</span></span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@quelle<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span>
</code></pre>
<p>(3) src Attribut inline hinzufügen, mit Wert via Attributwert-Template</p>
<pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bild<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{@quelle}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span>
</code></pre>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - obstruxi
</div>
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788135#m1788135
Rolf B
2021-05-05T19:09:29Z
2021-05-05T19:09:29Z
Frage zum Wiki-Artikel XML/XSL/XPath/Funktionen: geschweifte Klammern
<p>Hallo Rolf,</p>
<p>so - ich habe im Wiki fleißig editiert und das Thema Attributwert-Templates näher beleuchtet.</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - obstruxi
</div>
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788129#m1788129
Robert B.
2021-05-05T17:42:17Z
2021-05-05T17:42:17Z
Frage an alle - XSLT und Attributwert-Templates
<p>Hallo Rolf,</p>
<blockquote>
<p>sind die folgenden XSLT-Konstrukte gleichwertig?</p>
</blockquote>
<p>Nein:</p>
<blockquote>
<p>Oder gibt es da Bedeutungsunterschiede - abgesehen von möglichem Unfug, den ich in meiner XML Unkenntnis verzapft haben könnte …</p>
</blockquote>
<p>„Unfug“ würde ich das jetzt nicht nennen wollen …</p>
<blockquote>
<p>(2) src Attribut explizit hinzufügen, mit Wert via select-Attribut</p>
<pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bild<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>attribute</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>src<span class="token punctuation">"</span></span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@quelle<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span>
</code></pre>
</blockquote>
<p><a href="https://wiki.selfhtml.org/wiki/XML/XSL/XSLT/Sprachelemente#xsl:attribute_.28Attribut_im_Ergebnisbaum_erzeugen.29" rel="nofollow noopener noreferrer"><code>xsl:attribute</code></a> besitzt kein <code>select</code>-Attribut.</p>
<p>Ich habe die drei Beispiele für dich gerade einmal ausprobiert:</p>
<pre><code class="block language-xml"><span class="token prolog"><?xml version="1.0" encoding="UTF-8" ?></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>stylesheet</span> <span class="token attr-name"><span class="token namespace">xmlns:</span>xsl</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.w3.org/1999/XSL/Transform<span class="token punctuation">"</span></span> <span class="token attr-name">version</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1.0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bild<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>attribute</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>src<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@quelle<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>attribute</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>attribute</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>src<span class="token punctuation">"</span></span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>@quelle<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>img</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{@quelle}<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>stylesheet</span><span class="token punctuation">></span></span>
</code></pre>
<p>angewendet auf</p>
<pre><code class="block language-xml"><span class="token prolog"><?xml version="1.0"?></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>bild</span> <span class="token attr-name">quelle</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>test<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
</code></pre>
<p>ergibt</p>
<pre><code class="block language-xml"><span class="token prolog"><?xml version="1.0"?></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>test<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">/></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>test<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
</code></pre>
<p>Viele Grüße<br>
Robert</p>
https://forum.selfhtml.org/self/2021/may/05/frage-zum-wiki-artikel-xml-xsl-xpath-funktionen-geschweifte-klammern/1788131#m1788131
Rolf B
2021-05-05T18:09:24Z
2021-05-05T18:18:11Z
Frage an alle - XSLT und Attributwert-Templates
<p>Hallo Robert,</p>
<blockquote>
<p>xsl:attribute besitzt kein select-Attribut.</p>
</blockquote>
<p><a href="https://www.w3.org/TR/xslt20/#creating-attributes" rel="nofollow noopener noreferrer">Doch</a> - ich habe nur keine Ahnung, wie weit XSLT 2 unterstützt wird.</p>
<p>In XSLT 1 gibt's das nicht, da hast Du recht.</p>
<p>Ich probiere gerade mit dem XSLTProcessor Objekt rum das in Chrome eingebaut ist - und jetzt, wo ich deine Antwort sehe, komme ich da an den gleichen Punkt: geht nicht.</p>
<p>Scheinbar implementieren die nur XSLT 1.</p>
<p>Wer XSLT 2 will, scheint um Saxon-JS nicht herumzukommen. Immerhin gratis, solange man keinen Supportvertrag will. Aber das Ding bau ich jetzt nicht an...</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - obstruxi
</div>