2010-05-20 67 views
3

當例如如何改變與JavaScript中,XML DOM:使用XML + XSLT客戶端

XML:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="example.xsl"?> 
<document> 
    <foo>bar</foo> 
</document> 

XSL:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <html> 
     <head> 
     <title>example</title> 
     <script type="text/javascript"> 
      /* magic javascript that alters the foo-node to contain something else */ 
     </script> 
     </head> 
     <body> 
     <p>Foo: <xsl:value-of select="foo" /></p> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

我想那JavaScript來修改XML DOM,而不是HTML DOM!

回答

2

這是不可能的,即使有可能,我也不知道你期望它做什麼。

XML已經被轉換顯示,XSLT不會實時更新視圖。

在瀏覽器中查看源代碼將只顯示發送源,而不是DOM修改後的序列化。

Firebug等調試器會顯示瀏覽器中顯示的DOM的序列化(即轉換後的DOM,以及任何腳本修改)。

1

我認爲這是不可能的。在Javascript運行時,XSLT轉換已經被應用,並且爲了所有的意圖和目的,XML簡單地消失了。

想一想:您的Javascript甚至可以運行的唯一方式是HTML解析器看到您的<script>標記並理解其語義。直到改造之後纔會發生。

我還沒有做之前用XSLT做了很多工作,所以你應該保持希望之火,一些100K的用戶會投入並展示給我。