XSLT заменяет элемент, который существует внутри другого значения элемента - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в XSLT (использую XSLT v1.0), и у меня есть следующий ввод:

<SUMMARY>
<TITLE>Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. 
</TITLE>
<P> Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. </P>
</SUMMARY>

<REFERENCE>
<TI>Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. 
</TI>
<P> Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. </P>
</REFERENCE>

Как я могу заменить все вхождения элемента QUOTE внутри моего XML-ввода строкой, являющейся значением атрибута QUOTE / ID.

1 Ответ

0 голосов
/ 07 сентября 2018

Добавьте к тождеству преобразование специального шаблона для обработки QUOTE:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="QUOTE">
      <xsl:value-of select="@ID"/>
  </xsl:template>

</xsl:stylesheet>

Преобразование идентичности скопирует все в выходной XML, а специальный шаблон QUOTE скопирует значение своего атрибута @ID вместо элемента QUOTE.

...