2010-05-20 94 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的用户会投入并展示给我。