用XML+XSL组成的HTML中,如何用JS来直接处理XML和XSL节点?

yaochonghua 2003-05-11 05:27:13
我知道在IE中有document.XMLDocument和document.XSLDocument对象,但在MOZILLA中有类似的对象吗?
还有我在一个XSL中INCLUDE了另一个XSL,但我该如何用JS来处理被INCLUDE的XSL中的节点?如果可以的话,请也告诉我IE和MOZILLA的中各自的方法!
这个问题捆绕我多时,一直没找到方法!请教诸位!
谢谢!

...全文
91 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaochonghua 2003-06-13
  • 打赏
  • 举报
回复
大大的技术确实不错,可惜不能跨平台啊!
孟子E章 2003-06-12
  • 打赏
  • 举报
回复
http://xml.sz.luohuedu.net/
yaochonghua 2003-06-11
  • 打赏
  • 举报
回复
再过一天!!
bullion 2003-06-10
  • 打赏
  • 举报
回复
还来得急!
yaochonghua 2003-06-10
  • 打赏
  • 举报
回复
看来是没帮法了。算了,散分!!

进来的就有分!!先来先给,后来没有!
yaochonghua 2003-06-04
  • 打赏
  • 举报
回复
还是没找到相应的方法!
等待中......
ops2000 2003-05-13
  • 打赏
  • 举报
回复
脚本是不是延迟的?比如在onload中调用js,或者用<script defer>
yaochonghua 2003-05-13
  • 打赏
  • 举报
回复
无论用xsl:import还是用xsl:include,都无法用JS获取b.xsl中的XSL节点。晕啊!各位有方法吗?难道非要用open或其他方法来载入XSL吗?
yaochonghua 2003-05-11
  • 打赏
  • 举报
回复
我如何在b.xsl中的script获取<xsl:template name="nameTmpl"></xsl:template>这个节点?
yaochonghua 2003-05-11
  • 打赏
  • 举报
回复
举个例子:
customers.xml:
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>

customers.xsl:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<xsl:for-each select="customers/customer">
<TR>
<xsl:call-template name="nameTmpl"></xsl:call-template>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:include href="b.xsl"/>
</xsl:stylesheet>

b.xsl:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="nameTmpl">
<xsl:apply-templates select="name" />
<xsl:apply-templates select="address" />
<xsl:apply-templates select="phone" />
<script type="text/javascript" charset="gb2312">
<xsl:comment><![CDATA[
var oXMLNode = document.XMLDocument;
]]></xsl:comment>
</script>
</xsl:template>
<xsl:template match="name">
<TD STYLE="font-size:14pt font-family:serif">
<xsl:apply-templates />
</TD>
</xsl:template>
<xsl:template match="address">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="phone">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select='.'/>
</xsl:template>
</xsl:stylesheet>
孟子E章 2003-05-11
  • 打赏
  • 举报
回复
In IE
<SCRIPT>
function fnCheck(){
var oNode = oMetaData.XMLDocument.selectSingleNode
("METADATA/ABSTRACT");
alert(oNode.text);
}
</SCRIPT>

<XML ID="oMetaData">
<METADATA>
<AUTHOR>John Smith</AUTHOR>
<GENERATOR>Visual Notepad</GENERATOR>
<PAGETYPE>Reference</PAGETYPE>
<ABSTRACT>Specifies a data island</ABSTRACT>
</METADATA>
</XML>

<INPUT TYPE=button VALUE="Test" onclick="fnCheck()">
孟子E章 2003-05-11
  • 打赏
  • 举报
回复
http://www.mozilla.org/projects/xslt/js-interface.html

MOZILLA的语法
孟子E章 2003-05-11
  • 打赏
  • 举报
回复
INCLUDE之后就把2个文件看成一个了。相当于asp的include

8,907

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧