Вывод CDATA в XQuery - PullRequest
       17

Вывод CDATA в XQuery

2 голосов
/ 04 октября 2009

Как бы я, используя XQuery, преобразовать

<author>John Smith</author>

до

<author><![CDATA[John Smith]]></author>

Кроме того, как бы я преобразовал

<content>&lt;p&gt;&lt;em&gt;Hello&lt;/em&gt;&lt;/p&gt;</content>

до

<content><![CDATA[<p><em>Hello</em></p>]]></content>

Если это имеет значение, я использую XSLPalette.app.

Ответы [ 2 ]

1 голос
/ 04 октября 2009

Решение

declare namespace saxon="http://saxon.sf.net/";
declare option saxon:output "cdata-section-elements=content";

Спасибо Джиму Гаррисону за то, что он вдохновил меня на поиск саксонской документации немного более тщательно.

0 голосов
/ 04 октября 2009

XSLPalette, похоже, использует Saxon под обложками, поэтому он должен поддерживать опцию cdata-section-elements в xsl: output. Подробнее см. http://www.w3.org/TR/xslt#output.

По сути, если базовый процессор XSLT поддерживает его, вы можете кодировать

<xsl:output cdata-section-elements="name1 name2 ... etc"/>

Значением cdata-section-elements является разделенный пробелами список имен тегов, для которых дочерние текстовые узлы должны выводиться в виде разделов CDATA.

Мне будет любопытно узнать, работает ли это с XSLPalette.

...