2013-09-09 3 views
-2

У меня есть проблема, когда я пытаюсь получить HTML из XML с преобразованием XSLT, XML-часть, которая содержит HTML является:Как получить html-код из xml с помощью преобразования xslt?

`<DataContent><media media-type="image" style="leftSide"><media-reference data-location="#photo0" mime-type=""/></media><p>p1</p><p>p2</p><p>p3</p></DataContent> 
</ContentItem>` 

но на странице HTML Ниже retult является:

p1p2p3 // только текст,

мой XSLT-код:

<xslt:valueof select="ContentItem/DataContent"/> 

кто может мне помочь?

+0

Как выглядит ваш XSLT? – ABach

+1

-1, как вы ожидаете получения информации о своем коде, когда вы не публикуете код? –

+0

Извините, у меня нет большого опыта в этом – Carlos

ответ

1

I Я знаю, что вы ищете. В духе помощи, ниже - это решение и некоторые объяснения. I высоко рекомендую вам забрать хорошую книгу на XSLT и изучить основы с нуля.


Когда XSLT:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

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

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

</xsl:stylesheet> 

... применяется к исходному XML (скорректированного быть хорошо сформированы):

<ContentItem> 
    <DataContent> 
    <media media-type="image" style="leftSide"> 
     <media-reference data-location="#photo0" mime-type=""/> 
    </media> 
    <p>p1</p> 
    <p>p2</p> 
    <p>p3</p> 
    </DataContent> 
</ContentItem> 

... разыскиваемый результат (Я думаю,):

<media media-type="image" style="leftSide"> 
    <media-reference data-location="#photo0" mime-type=""/> 
</media> 
<p>p1</p> 
<p>p2</p> 
<p>p3</p> 

Ваше решение выводит текст, потому что <xsl:value-of> по определению возвращает строковое значение выбранных узлов/атрибутов.