2017-05-25 45 views
0

我有一個XML:XSLT/XPath的:把<tag>普通字符串,而不是節點

<foo> 
    <bar>some text</bar> 
</foo> 

而且我使用XSTL產生從它的HTML,並尋找一個XPath(或某些XSTL方法,不知道),這給了我foo的全部內容。爲了說明我的問題,

<xsl:value-of select="foo"/> 

不如預期,只能提供

some text 

。但有什麼我可以做得到

<bar>some text</bar> 

?所以要把它看作是條形碼標籤只是普通的字符串。

+0

[XSLT:如何將XML節點轉換爲字符串]的可能副本(https://stackoverflow.com/questions/6696382/xslt-how-to-convert-xml-node-to-string) –

回答

2

嗯,當然沒有辦法將<tag>作爲一個字符串對待,因爲XSLT可以看到XML解析器的輸出,它是一個節點樹:在XSLT進入操作時,標記早已消失。

但是,你當然可以複製元素節點作爲一個整體,而不是僅僅提取它的字符串值。只需使用<xsl:copy-of>代替<xsl:value-of>即可。

+0

copy-of做的伎倆。並感謝您的解釋! – tom

1

您可以使用Copy

HTML

<foo> 
    <bar>some text</bar> 
</foo> 

XSL

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 
    <xsl:template match="bar"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

輸出

<bar>some text</bar> 
相關問題