2010-06-29 72 views
1

當xml文檔中的標籤內出現鏈接並將其變爲工作鏈接時,是否有辦法讓xsl樣式表識別出來?XSLT查找XML文檔中標籤內的鏈接

例子:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet type="text/xsl" href="guys.xsl"?> 

<people> 
    <person> 
     <name>Guy 1</name> 
     <bio>Guy 1 is a guy.</bio> 
    </person> 

    <person> 
     <name>Guy 2</name> 
     <bio>Guy 2 is from <a href="http://www.example.com">somewhere</a>.</bio> 
    </person> 
</people> 

蓋伊1的生物應該只是顯示爲普通文字,蓋伊2的生物應該有它的一個工作環節。

+0

是的,它是。如果你發佈你的「guys.xsl」,我們可以告訴你爲什麼鏈接不被渲染。 – 2010-06-29 16:10:50

+0

另外,告訴我們XSL輸出的最終目的地 - 它是去瀏覽器還是其他渲染機制? – 2010-06-29 16:14:47

+0

好問題(+1)。查看我的答案獲得完整的解決方案。 – 2010-06-29 17:03:27

回答

3

有沒有辦法當鏈接 標籤內會出現一個XML文檔 中,把它變成一個工作 鏈接有一個XSL樣式表 認識?

是的。這種轉變

<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="/*"> 
    <table border="1"> 
    <xsl:apply-templates/> 
    </table> 
</xsl:template> 

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

<xsl:template match="person/*"> 
    <td><xsl:copy-of select="node()"/></td> 
</xsl:template> 
</xsl:stylesheet> 

時所提供的XML文檔應用:

<people> 
    <person> 
     <name>Guy 1</name> 
     <bio>Guy 1 is a guy.</bio> 
    </person> 

    <person> 
     <name>Guy 2</name> 
     <bio>Guy 2 is from <a href="http://www.example.com">somewhere</a>.</bio> 
    </person> 
</people> 

產生通緝的結果

<table border="1"> 
    <tr> 
     <td>Guy 1</td> 
     <td>Guy 1 is a guy.</td> 
    </tr> 

    <tr> 
     <td>Guy 2</td> 
     <td>Guy 2 is from <a href="http://www.example.com">somewhere</a>.</td> 
    </tr> 
</table> 
+0

完美。這正是我正在尋找的。 – Skunkwaffle 2010-06-29 18:11:56

1

這會工作的開箱即用的,如果你正在嘗試以HTML格式來顯示這一點:

<html> 
<body> 
    <xsl:for-each select="people/person"> 
    <div> 
     <xsl:value-of select="name"/> 
    </div> 
    <div> 
     <xsl:copy-of select="bio"/> 
    </div> 
    </xsl:for-each> 
</body> 
</html> 

編輯:改變的數值,來複制的。看到這個討論: How do I preserve markup tags?