2009-06-10 6 views
0

die folgende XML-Datei angegeben:verhindern x: aus Elementen in ausgewählten Knoten Stripping

<?xml version="1.0" encoding="UTF-8"?> 
<doc> 
    <head> 
     <title>Introduction</title> 
     <section>section</section> 
     <channel>testing/test</channel> 
    </head> 
    <body> 
     <h1>Heading</h1> 
     <p>Lorem ipsum dolor sit amet.</p> 
     <p>Donec sed enim.</p> 
    </body> 
</doc> 

und die folgende JSTL Fragment, wo die XML in die Variable 'Datei' geladen ist:

<x:parse var="xml" doc="${file}"/> 
<x:out select="$xml//body"/> 

ich hoffe zu bekommen:

<h1>Heading</h1> 
<p>Lorem ipsum dolor sit amet.</p> 
<p>Donec sed enim.</p> 

Aber ich immer:

Heading Lorem ipsum dolor sit amet. Donec sed enim. 

Beachten Sie, keine Tags. Wie würde ich JSTL dazu bringen, die Tags im Ergebnis zu belassen?

+0

Der Inhalt dieser Frage wurde von einer Frage auf einer Mailingliste, die nie beantwortet wurde, angepasst. Die ursprüngliche Frage ist hier: http://article.gmane.org/gmane.comp.jakarta.taglibs.user/6801 – Sixty4Bit

Antwort

1

x:out ist sehr ähnlich zu xsl:value-of in dem es nur Textknoten auswählen wird. Wenn Sie also die XML-Struktur erhalten wollen, würde ich vorschlagen, x:transform zu verwenden und ein Stylesheet zu schreiben, das eine xsl:copy-of verwendet, um Tags zu erhalten. Eine andere Möglichkeit ist, ein eigenes Tag zu schreiben :-).

Verwandte Themen