2014-11-19 2 views
0

Я хотел бы сохранить фрагмент xml в атрибут с помощью XSL. Например у меня есть следующий XMLХранить фрагмент XML в атрибуте как строку с использованием XSL

<a> 
    <b> 
    <c>test1</c> 
    <c>test2</c> 
    </b> 
</a> 

и хотели бы иметь этот результат (в Кур XML-в атрибуте должен быть экранированы):

<a attr="<b><c>test1</c><c>test2</c></b>"/> 

Возможно ли это только с помощью XSL?

ответ

1

С XSLT 3.0 есть функция serialize-xml, в более ранних версиях вы можете импортировать модуль как http://lenzconsulting.com/xml-to-string/, а затем код

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 

<xsl:import href="xml-to-string.xsl"/> 

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

<xsl:template match="a"> 
    <xsl:copy> 
    <xsl:attribute name="attr"> 
     <xsl:apply-templates mode="xml-to-string"/> 
    </xsl:attribute> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 
+0

, что работал. благодаря! – Werzi2001

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