предотвратить x: out от зачистки элементов внутри выбранного узла - PullRequest
0 голосов
/ 10 июня 2009

С учетом следующего 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 Ответ

1 голос
/ 10 июня 2009

x:out очень похож на xsl:value-of в том, что он будет выбирать только текстовые узлы. Поэтому, если вы хотите сохранить структуру XML, я бы предложил использовать x:transform и написать таблицу стилей, которая будет использовать xsl:copy-of для сохранения тегов. Другой вариант - написать собственный тег: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...