2012-08-02 39 views
0

我有我的簡單的XML文檔中的下列代碼不能看到XML文件的超級鏈接

<?xml version="1.0"?> 
<sample> 
<link xml:link="simple" href="http://www.google.com"> Google page </link> 
</sample> 

但是,這表現爲只是在瀏覽器標籤,不論它是什麼瀏覽器

這是什麼顯示在我的瀏覽器上:

<sample><link xml:link="simple" href="http://www.google.com"> Google page </link></sample> 

請讓我知道爲什麼超鏈接沒有出現在瀏覽器上而不是標籤。我嘗試了很多選擇,但它似乎很想在這裏丟失一些非常基本的東西 謝謝

+0

這是因爲XML文件不是HTML。 Web瀏覽器不會將其顯示爲HTML,因爲具有'xml'擴展名的文件被視爲'application/xml'格式。您可能想要將文件的擴展名重命名爲「html」。 – Jay 2012-08-03 02:09:08

回答

0

您不能用HTML行爲打開XML文件。爲此,您需要使用XSLT將XML文件轉換爲HTML文件。下面的代碼卡將幫助您在使用XSLT XML文件轉換爲HTML文件:

應用以下XSLT:

<?xml version="1.0" encoding="iso-8859-1"?> 

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

    <xsl:output method="html"/> 

    <xsl:template match="/"> 
    <HTML> 
     <HEAD> 
     <TITLE>Sample HTML</TITLE> 
     </HEAD> 
     <BODY> 
     <xsl:apply-templates/> 
     </BODY> 
    </HTML> 
    </xsl:template> 

    <xsl:template match="sample/link"> 
    <A TARGET="_blank"> 
     <xsl:attribute name="HREF"> 
     <xsl:value-of select="@href"/> 
     </xsl:attribute> 
     <xsl:apply-templates/> 
    </A> 
    </xsl:template> 

XML文件是這樣的:

<sample> 
    <link xml:link="simple" href="http://www.google.com"> Google page </link> 
</sample> 

C#函數來轉換XML文件.HTML文件是:

public void transformToHtml() 
    { 
     XslCompiledTransform transform = new XslCompiledTransform(); 
     transform.Load("html.xslt"); 
     transform.Transform("htmlArtical.xml", "toHTML.html"); 
    } 

而輸出.HTML文件是這樣的:

<HTML xmlns="http://www.w3.org/TR/REC-html40"> 
<HEAD> 
<TITLE>Sample HTML</TITLE> 
</HEAD> 
<BODY> 
<A TARGET="_blank" HREF="http://www.google.com"> Google page </A> 
</BODY> 
</HTML> 

在瀏覽器中打開此.HTML文件,您將獲得「Google頁面」文本鏈接。

我希望這會幫助你。

+0

我發現和IAM一樣練習XSLT。謝謝 – user1455116 2012-08-03 05:33:35