代码之家  ›  专栏  ›  技术社区  ›  Lilleman

在使用XML+XSLT客户端时,如何用JavaScript更改XML DOM?

  •  3
  • Lilleman  · 技术社区  · 14 年前

    例如:

    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 回复  |  直到 14 年前
        1
  •  2
  •   Paul Butcher    14 年前

    这是不可能的,即使可能,我也不知道你会期望它做什么。

    XML已经被转换为显示,而XSLT并没有持续实时更新视图。

    浏览器中的视图源将只显示已发送的源,而不显示修改后的DOM序列。

    Firebug等调试器将在浏览器中显示DOM的序列化(即转换后的DOM,加上任何脚本化的修改)。

        2
  •  1
  •   Pointy    14 年前

    我认为那是不可能的。在运行JavaScript时,已经应用了XSLT转换,而且对于所有意图和目的而言,XML都已经不复存在了。

    想想看:你的javascript运行的唯一方式就是当HTML解析器看到你的 <script> 标记并理解其语义。只有在转型之后才会发生。

    我没有做过 那个 以前通过浏览器使用XSLT的工作很多,所以你应该保持希望的火焰,有大约10万用户会来看看我。