Как мне индексировать данные 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>
Другие вопросы по тегам