Как мне индексировать данные XML внутри узла контента?
Я конвертирую XML-документ и хочу поместить все содержимое в узел содержимого в конвертере.
<xsl:template match="/">
<vce>
<document>
<content name="xml">
<xsl:copy-of select="." />
</content>
</document>
</vce>
</xsl:template>
Это дает мне узел с именем "XML" и весь мой XML-контент внутри. Однако это удаляется при запуске преобразователя нормализации. Есть ли что-то особенное, что мне нужно сделать, чтобы индексировать XML внутри контента?
1 ответ
Я смог сослаться на конвертер: vse-converter-xml-to-vxml, чтобы создать шаблон, который индексирует xml:
<xsl:template match="/">
<vce>
<document>
<content name="xml">
<xsl:apply-templates select="*" mode="xml-to-plain-text" />
</content>
</document>
</vce>
</xsl:template>
<xsl:template match="*" mode="xml-to-plain-text">
<xsl:text><![CDATA[<]]></xsl:text>
<xsl:value-of select="name()" />
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="text()|*|comment()">
<xsl:text>></xsl:text>
<xsl:apply-templates select="text()|*|comment()" mode="xml-to-plain-text" />
<xsl:text><![CDATA[</]]></xsl:text>
<xsl:value-of select="name()" />
<xsl:text>></xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>/></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>