трансформировать только указанные элементы, отбрасывая остальные

StackOverflow https://stackoverflow.com/questions/815587

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь разработать таблицу стилей XSLT, которая будет преобразовывать xml в другой с учетом:

<Ол>
  • По умолчанию таблица стилей не должна отображать ничего для каждого элемента (даже для текста).
  • Если для элемента существует явное совпадение шаблона, скопируйте этот элемент, его атрибуты и все его подэлементы (и их атрибуты).
  • Другими словами, идентичность преобразует только те элементы, которые явно указаны.

    Это было полезно?

    Решение

    Ну, ничего не делать для большинства, конечно, что-то вроде:

    <xsl:template match="/*">
      <xsl:copy>
        <xsl:apply-templates select="*"/>
      </xsl:copy>
    </xsl:template>
    <xsl:template match="*">
        <xsl:apply-templates select="*"/>
    </xsl:template>
    

    Затем добавьте совпадения для того, что вы делаете хотите:

    <xsl:template match="Foo | Bar">
        <xsl:copy-of select="."/>
    </xsl:template>
    

    Однако это очень необычное требование. Обычно вы просто используете совпадения, которые переходят к известному контенту через знание XML.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top