怎样让一个XML文件套用二个不同的XSL文件?

hling 2003-10-23 04:43:31
怎样让一个XML文件套用二个不同的XSL文件?
按不同需要套用
...全文
60 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hling 2003-10-24
  • 打赏
  • 举报
回复
wolf004(色胚) 可不可以详细点?
ssm1226 2003-10-24
  • 打赏
  • 举报
回复
用DOM做转换吧

你使用标准XSL,考虑兼容,最好在服务器端做解析
purexu 2003-10-24
  • 打赏
  • 举报
回复
用ASP输出XML文件,很容易实现
www.stnjx.com/article
的多模板功能就是这样实现的
wolf004 2003-10-23
  • 打赏
  • 举报
回复
<?xml version='1.0' encoding='gb2312'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="document/page">

<xsl:choose> <!--创建分支结构-->
<!--如果document/page/page2=''为空成立则-->
<xsl:when test="page2[.='']"><xsl样式1></xsl:when>
<xsl:when test="page2[.='中国']"><xsl样式2></xsl:when>
<xsl:otherwise><xsl样式3></xsl:otherwise> <!--所有when不成立则输出xsl样式3-->
</xsl:choose>

</xsl:template>
</xsl:stylesheet>
KAI3000 2003-10-23
  • 打赏
  • 举报
回复
存为html运行,虽然用的是数据岛,但你可以自行转换为xmlDOM.load(xxx.xml)

<html>
<head>
<title>::::::::http://www.17xml.com::::::::::::</title>
<script language="JavaScript">
function show(){
DivBody.innerHTML=myXML.transformNode(myXSL1.documentElement);
}
function modify(){
DivBody.innerHTML=myXML.transformNode(myXSL2.documentElement);
}
</script>
</head>
<body bgcolor="#FFFFFF">
<xml id="myXML">
<?xml version="1.0" encoding="UTF-8"?>
<BlueIdea>
<team>
<blue_ID>1</blue_ID>
<blue_name>KAI3000</blue_name>
<blue_text>xsl需要很强的理解能力,你准备好了吗?</blue_text>
<blue_time>2003-10-23 17:35:33</blue_time>
<blue_class>XML专题</blue_class>
</team>
<team>
<blue_ID>2</blue_ID>
<blue_name>KAI.MA</blue_name>
<blue_text>www.kingbbs.net读xml书读得头昏眼花</blue_text>
<blue_time>2003-10-23 12:45:51</blue_time>
<blue_class>XML专题</blue_class>
</team>
</BlueIdea>
</xml>
<xml id="myXSL1">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="BlueIdea/team"/>
</xsl:template>
<xsl:template match="team">
<table width="450px" border="0" cellpadding="2" cellspacing="1" bgcolor="#999999">
<tr>
<td bgcolor="#eeeeee" width="50px"><xsl:value-of select="blue_ID"/></td>
<td bgcolor="#eeeeee" width="100px"><xsl:value-of select="blue_name"/></td>
<td bgcolor="#eeeeee"><xsl:value-of select="blue_text"/></td>
</tr>
</table>
<br/>
</xsl:template>
</xsl:stylesheet>
</xml>
<xml id="myXSL2">
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="BlueIdea/team"/>
</xsl:template>
<xsl:template match="team">
<table width="500px" border="0" cellpadding="2" cellspacing="1" bgcolor="#999999">
<tr>
<td bgcolor="#eeeeee"><input type="text" style="width:20px;"><xsl:attribute name="value"><xsl:value-of select="blue_ID"/></xsl:attribute></input></td>
<td bgcolor="#eeeeee"><input type="text" style="width:100px;"><xsl:attribute name="value"><xsl:value-of select="blue_name"/></xsl:attribute></input></td>
<td bgcolor="#eeeeee"><input type="text" style="width:200px;"><xsl:attribute name="value"><xsl:value-of select="blue_text"/></xsl:attribute></input></td>
</tr>
</table>
<br/>
</xsl:template>
</xsl:stylesheet>
</xml>
<button onclick="javascript:show();">查看模式</button><button onclick="javascript:modify();">修改模式</button>
<div id="DivBody"></div>
</body>
</html>
孟子E章 2003-10-23
  • 打赏
  • 举报
回复
只能有代码操作Dom进行实现
xmldom.transformNode(xsl1)
xmldom.transformNode(xsl2)
zhfkiller 2003-10-23
  • 打赏
  • 举报
回复
使用DOM,转完一个在转一个咯
hling 2003-10-23
  • 打赏
  • 举报
回复
不是这样的
我有一个XML文件,我想显示的时候用一个XSL,当我想修改的时候,又用另一个XSL文件来修改

是按需要来选择XSL文件,不是一个xml同时用二个XSL
jwfing 2003-10-23
  • 打赏
  • 举报
回复
"按不同需要套用"是什么意思?
ttflash的方法好像不能做到吧,实质上就是一个xsl文件嘛
ttflash 2003-10-23
  • 打赏
  • 举报
回复
三个文件

collection.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xslinclude.xsl"?>
<COLLECTION>
<BOOK>
<TITLE>Lover Birds</TITLE>
<AUTHOR>Cynthia Randall</AUTHOR>
<PUBLISHER>Lucerne Publishing</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>The Sundered Grail</TITLE>
<AUTHOR>Eva Corets</AUTHOR>
<PUBLISHER>Lucerne Publishing</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>Splish Splash</TITLE>
<AUTHOR>Paula Thurman</AUTHOR>
<PUBLISHER>Scootney</PUBLISHER>
</BOOK>
</COLLECTION>

xslinclude.xsl

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:template match="/">
<xsl:for-each select="COLLECTION/BOOK">
<xsl:apply-templates select="TITLE"/>
<xsl:apply-templates select="AUTHOR"/>
<xsl:apply-templates select="PUBLISHER"/>
<BR/> <!-- add this -->
</xsl:for-each>
</xsl:template>

<xsl:include href="xslincludefile.xsl" />

</xsl:stylesheet>



xslincludefile.xsl


<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:space="preserve">

<xsl:template match="TITLE">
Title - <xsl:value-of select="."/><BR/>
</xsl:template>

<xsl:template match="AUTHOR">
Author - <xsl:value-of select="."/><BR/>
</xsl:template>

<xsl:template match="PUBLISHER">
Publisher - <xsl:value-of select="."/><BR/><!-- removed second <BR/> -->
</xsl:template>

</xsl:stylesheet>

8,907

社区成员

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

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