2016-08-01 4 views
0

У меня есть ниже в XML и я пытаюсь преобразовать это в какой-то выходной файл сказать HTMLПреобразовать кодирование с помощью XSLT

Можно ли преобразовать & в & в выходном файле?

<Property> 
    <name>Document Title</name> 
    <value>Me &amp; you</value> 
</Property> 
+0

Не могли бы вы объяснить, в чем проблема? В HTML, как и в XML, амперсанд обычно кодируется как «&», поэтому где/почему на вашем выходе HTML вам нужен неограниченный амперсанд? –

ответ

1

Как вы отметили вопрос, как XSLT 2.0, если вы действительно хотите неэкранированный амперсанд & в выводе HTML, то вы можете использовать карту символов:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" 
    version="2.0"> 

    <xsl:output method="html" use-character-maps="m1"/> 

    <xsl:character-map name="m1"> 
     <xsl:output-character character="&amp;" string="&amp;"/> 
    </xsl:character-map> 

    <xsl:template match="/"> 
     <html> 
      <body> 
       <p>This is a test of the encoding of the <code>&amp;</code> character.</p> 
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 

Выход на

<html> 
    <body> 
     <p>This is a test of the encoding of the <code>&</code> character. 
     </p> 
    </body> 
</html> 

Но в HTML, как и в XML, амперсанд, как правило, экранируется как &amp; по какой-либо причине, и если ваш XSLT-процессор ускользает от него в результате вывода HTML, то это обычно реализуется nting правил синтаксиса HTML.

Смежные вопросы