ich die folgende Struktur mit XSL erstellen möchten:Xsl, Xpath Die folgenden Geschwister foreach
<div class="helloclass">C
<div class="hellomethod"><p>test</p></div>
<div class="hellomethod"><p>test</p></div>
</div>
<div class="helloclass">
</div>
ich folgende XML haben:
<?xml version="1.0"?>
<hello id="C"></hello>
<hello id="M"></hello>
<hello id="M"></hello>
<hello id="C"></hello>
</xml>
Mit XSL und XPath Ich habe versucht, die folgenden:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<xsl:template match="/">
<xsl:for-each select="hello">
<xsl:if test="current()[contains(@id,'C')]">
<xsl:for-each select="following-sibling">
<xsl:if test="current()[[email protected],'M']">
<p>Test</p>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:styleshet>
Ich habe eine flache xml-Struktur. Für dieses XML möchte ich basierend auf der ID eine Struktur erstellen.
id = "C" bedeutet, dass es zu < div class = "helloclass" > id = "M" umgewandelt werden sollte, bedeutet, dass es zu < div class = "Hello" >
umgewandelt werden sollte My Das erste Ziel ist es, den Text "test" in den richtigen Knoten zu zeigen.
Auch M sollte in C geschachtelt werden und nicht ein Geschwister wie in der XML sein. Die folgenden Sequenzen können auch erscheinen: CMMCCMMMC, oder CCCCCCCCCCMM, OR CM, ... Grundsätzlich brauche ich eine "generische" Lösung.
XLST 1.0 Prozessor nur verfügbar.
Bitte erläutern Sie die Logik ** in Worten **. - Beachten Sie auch, dass die Eingabe kein wohlgeformtes XML ist (hat kein Wurzelelement), das das Schreiben der XSLT erschwert, da der Kontext unbekannt ist. –
Ich versuchte mein Problem zu erklären. Grundsätzlich habe ich Probleme mit einer flachen "xml" -Struktur. –
Kann es zwei oder mehr Sequenzen geben, z.B. CMMCCMMMC in der gleichen Eingabe? –