防止x:从所选节点内的剥离元素中删除

时间:2009-06-10 03:06:53

标签: xml xpath jstl

给出以下XML文件:

<?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>

以及以下JSTL片段,其中xml已加载到变量'file'中:

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

我希望得到:

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

但是我得到了:

Heading Lorem ipsum dolor sit amet. Donec sed enim.

注意,没有标签。我如何让JSTL在结果中留下标签?

1 个答案:

答案 0 :(得分:1)

x:outxsl:value-of非常相似,因为它只会选择文本节点。因此,如果您想保留XML结构,那么我建议使用x:transform并编写将使用xsl:copy-of来保留标记的样式表。另一种选择是编写自己的标签: - )。