Преобразовать & в XSLT? - PullRequest
       2

Преобразовать & в XSLT?

2 голосов
/ 20 октября 2010

Я относительно новичок в XSLT. Я столкнулся с проблемой, которую я не знаю, как обойти. У меня есть довольно большой XML-документ, который я пытаюсь преобразовать в другой, более мелкий, усовершенствованный XML-документ.

Большой XML-документ имеет такой стиль:

 <Property>
  <name>Document name</name>
  <value>SomeValue</value>   
 </Property>
...
 <Property>
  <name>Document Title</name>
  <value>Me %amp; you</value>   
 </Property>

Как преобразовать значение между элементами значения и сохранить "& amp"; неповрежденными. Видимо, преобразование этого XML вызывает ошибки из-за того, что в тексте происходит амперсанд.

Примечание. Этот большой XML-файл создается приложением, которое извлекает данные с сервера. Так что я как бы застрял, имея дело с амперсандом спасения: (

1 Ответ

1 голос
/ 21 октября 2010

Вот простой (и очень фундаментальный) пример с использованием правила идентификации:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

, когда это преобразование применяется к предоставленному XML-файлу :

<t>
 <Property>
  <name>Document name</name>
  <value>SomeValue</value>
 </Property>
...
 <Property>
  <name>Document Title</name>
  <value>Me &amp; you</value>
 </Property>
</t>

превращается в себя (личность):

<t>
   <Property>
      <name>Document name</name>
      <value>SomeValue</value>
   </Property>
...
 <Property>
      <name>Document Title</name>
      <value>Me &amp; you</value>
   </Property>
</t>

и символ &amp; сохраняется.

...