I aa Probe xml habe wie folgt,XSLT - platziert Selbstknotentext(), um Attribut
<doc>
<para>AAAAA BBB<s/>CCC DDD<l/>EEEE<t/>FFFFF <style>GGGG</style>HHHHHH</para>
</doc>
XSLT Ich habe diesen Baum zu demselben Knoten zu transformieren, sondern ein Namensattribut zu <para>
Knoten mit dem Namen 'name'
hinzufügen und Der Wert sollte der Inhalt des Elements <para>
sein.
So sollte die Ausgabe wie folgt aussehen werden,
<doc>
<p name="AAAAA BBB CCC DDD EEEE FFFFF GGGG HHHHHH">AAAAA BBB<s/>CCC DDD<l/>EEEE<t/>FFFFF <style>GGGG</style>HHHHHH</p>
</doc>
Wie Sie in der Ausgabe sehen können, alle Textknoten mit dem Namen Attributwert ein und alle Inline-Elemente (<s/>,<t/>,<l/>,<style>
) kopiert werden soll muss sein entfernt. und alle <s/>
, <t/>
, <l/>
muss durch Platz ersetzt werden.
Ich habe folgende Xslt geschrieben dies,
<xsl:template match="p">
<p name="{abc:process-attr-text(child::node())}">
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:function name="abc:process-attr-text">
<xsl:param name="node"/>
<xsl:sequence select="$node/text()"/>
</xsl:function>
es ausgegeben folgenden ergibt,
<doc>
<p name="GGGG">AAAAA BBB<s/>CCC DDD<l/>EEEE<t/>FFFFF <style>GGGG</style> HHHHHH</p>
</doc>
wie kann ich meine Funktion ändern Sie das richtige Ergebnis zu bekommen?