Почему XSLT выводит весь текст по умолчанию?


0 Answers

В XSL существует несколько встроенных шаблонных правил , одним из которых является следующее:

<xsl:template match="text()|@*">
  <xsl:value-of select="."/>
</xsl:template>

Он выводит текст.

Question

Привет, я выполнил преобразование, которое возвращает тег, если оно равно null.

Я хотел проверить, работает ли мое преобразование нормально, поэтому вместо того, чтобы проверять его вручную, я написал еще один XSLT-код, который просто проверяет наличие этого конкретного тега в XML OUTPUT, если он является нулевым, то второй XSLT должен выводить текст «НАЙДЕН». (Мне действительно не нужен какой-то вывод в формате XML, но я просто использую XSLT для поиска.)

Когда я попытался с этим кодом XSL ::

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/SiebelMessage//SuppressCalendar[.!='']">
      FOUND
  </xsl:template>
</xsl:stylesheet>

Он выводит все TEXT DATA, которые присутствуют в файле XML,

Чтобы избежать этого, мне пришлось написать этот код ::

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/SiebelMessage//SuppressCalendar[.!='']">
      FOUND
  </xsl:template>
  <xsl:template match="text()"/>
</xsl:stylesheet>

почему предыдущий код выводит TEXT, почему я должен настаивать на том, чтобы XSL игнорировал все остальные тексты? заключается в том, что поведение всех парсеров XML или только моих собственных (я использую синтаксический анализатор msxml).




Related



Tags

xslt