Я хочу использовать xslt для выбора некоторых наборов узлов с определенным значением в элементе из xml-файла. Я получаю нужный узел, но также получаю сериализованный текст из текстовых полей. Не могли бы вы помочь мне избавиться от этого текста?Почему текстовые узлы отображаются в преобразованном xml
Это исходный файл:
<surveys>
<survey id='01'>
<category>cat1</category>
<questions>
<question id='1'>Y</question>
<question id='2'>Y</question>
<question id='3'>Y</question>
<question id='4'>Y</question>
</questions>
</survey>
<survey id='02'>
<category>cat2</category>
<questions>
<question id='1'>Y</question>
<question id='2'>Y</question>
<question id='3'>N</question>
<question id='4'>N</question>
</questions>
</survey>
<survey id='03'>
<category>cat1</category>
<questions>
<question id='1'>N</question>
<question id='2'>N</question>
<question id='3'>N</question>
<question id='4'>N</question>
</questions>
</survey>
<survey id='04'>
<category>cat3</category>
<questions>
<question id='1'>N</question>
<question id='2'>N</question>
<question id='3'>Y</question>
<question id='4'>Y</question>
</questions>
</survey>
</surveys>
Это преобразование файла:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<surveys>
<category/>
<xsl:apply-templates/>
</surveys>
</xsl:template>
<xsl:template match="survey[category = 'cat2']">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
И это результат:
<surveys>cat1YYYY<survey id="02">
<category>cat2</category>
<questions>
<question id="1">Y</question>
<question id="2">Y</question>
<question id="3">N</question>
<question id="4">N</question>
</questions>
</survey>cat1NNNNcat3NNYY</surveys>
Итак, я хотел бы получить избавиться от «cat1YYYY» в первой строке после элемента съемки и «cat1NNNNcat3NNYY» в последней строке после элемента съемки. И я хотел бы понять, почему это там ;-)