JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源


0. 有关JS、XMLDOM、XSLT的基础知识,可以参考我前面的三篇学习笔记:
《JS学习笔记》
《XML DOM学习笔记(JS) 》
《XSLT学习笔记 》

 

1. 中英文切换:
    原本打算是用一个XML文件(Language.xml)作为语言的配置文件,然后在HTML/JS中传入所选择得语言种类,来加载不同的XML节点,我最原始的思路:
<!--langg传文件名:zh或en-->

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源<xsl:param name="langg"></xsl:param>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:variable name="languag" select="document($filename)/language/$langg"></xsl:variable>

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源//Language.XML
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<?xml version="1.0" encoding="gb2312"?>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<language>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源    
<zh>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<title>员工信息</title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<btnAdd>新建员工</btnAdd>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column1>姓名</column1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column2>部门</column2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column3>备注</column3>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column4>删除</column4>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<CurrentPage>当前页码</CurrentPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelPage>总页数</TotelPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelCount>总记录数</TotelCount>        
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<FirstPage>首页</FirstPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<PrevPage>前一页</PrevPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<NextPage>后一页</NextPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<LastPage>最后一页</LastPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源    
</zh>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源    
<en>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<title>Employee Information</title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<btnAdd>Add New Employee</btnAdd>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column1>Name</column1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column2>Department</column2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column3>Memo</column3>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column4>Delete</column4>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<CurrentPage>Current Page</CurrentPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelPage>Totel Page Count</TotelPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelCount>Totel Record Count</TotelCount>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<FirstPage>First Page</FirstPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<PrevPage>Previous Page</PrevPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<NextPage>Next Page</NextPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<LastPage>Last Page</LastPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源    
</en>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
</language>

    但在实践过程中,发现XSL中document函数后的Xpath不能带参数变量,只好改成两个文件(zh.xml和en.xml),通过HTML/JS传入所选择的语言的种类,来加载不同的语言所对应的配置文件:

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源<!--langg传文件名:zh或en-->
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:param name="langg"></xsl:param>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:variable name="filename" select="concat($langg,'.xml')"></xsl:variable>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:variable name="languag" select="document($filename)/language"></xsl:variable>

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源//zh.xml
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<?xml version="1.0" encoding="gb2312"?>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<language>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<title>员工信息</title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<btnAdd>新建员工</btnAdd>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column1>姓名</column1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column2>部门</column2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column3>备注</column3>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column4>删除</column4>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<CurrentPage>当前页码</CurrentPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelPage>总页数</TotelPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelCount>总记录数</TotelCount>        
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<FirstPage>首页</FirstPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<PrevPage>前一页</PrevPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<NextPage>后一页</NextPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<LastPage>最后一页</LastPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<add>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<NotNull>员工姓名不能为空!</NotNull>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<NameRepeat>姓名重复,请重新输入姓名!</NameRepeat>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Save>保存</Save>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Cancel>取消</Cancel>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Title>员工信息</Title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Name>姓名</Name>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Dept>部门</Dept>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Memo>备注</Memo>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
</add>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<del>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Text1>确定删除 </Text1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Text2> 记录吗?</Text2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
</del>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<edit>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
</edit>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
</language>

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源//en.xml
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<?xml version="1.0" encoding="gb2312"?>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<language>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<title>Employee Information</title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<btnAdd>Add New Employee</btnAdd>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column1>Name</column1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column2>Department</column2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column3>Memo</column3>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<column4>Delete</column4>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<CurrentPage>Current Page</CurrentPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelPage>Totel Page Count</TotelPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<TotelCount>Totel Record Count</TotelCount>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<FirstPage>First Page</FirstPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<PrevPage>Previous Page</PrevPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<NextPage>Next Page</NextPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<LastPage>Last Page</LastPage>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<add>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<NotNull>You must enter employee name!</NotNull>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<NameRepeat>Name is already exists,please input again!</NameRepeat>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Save>Save</Save>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Cancel>Cancel</Cancel>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Title>Employee Information</Title>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Name>Name</Name>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Dept>Department</Dept>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Memo>Memo</Memo>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
</add>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
<del>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Text1>Do you confirm to delete </Text1>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源            
<Text2> record?</Text2>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源        
</del>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
</language>

 

2. 分页:

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源//JS中
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
xslProcessor.addParameter("currentPage", currentPage);
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源xslProcessor.addParameter(
"totelPage", GetTotlePage());
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源xslProcessor.addParameter(
"totelEmployee", GetTotleEmplyee());
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源xslProcessor.addParameter(
"pageSize", pageSize);
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
//定义要读取的Employee记录的范围
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
xslProcessor.addParameter("startEmployee", (currentPage-1)*pageSize);
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源xslProcessor.addParameter(
"endEmployee", currentPage*pageSize);
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
//XSL中
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
xsl中,只读取一定范围的节点(startEmployee<position()<=endEmployee):
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:for-each select="//employee[position()&gt;$startEmployee and position()&lt;=$endEmployee]">

 

3. 排序:

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源//JS中:
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
xslProcessor.addParameter("order", order);//order是排序依据的列名
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
xslProcessor.addParameter("scending", scending);//顺序还是倒序,做得很粗糙,尚待完善JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源.
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
//XSL中
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
<xsl:sort select="*[name()=$order]" order="{$scending}"/>
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
//很多文章介绍说可以这样<xsl:sort select="$order" order="{$scending}"/>,但在我自己的机器上测试不行的说JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源

 

4. 增删查改:基本的XMLDOM操作,直接看代码吧...

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源数据文件

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源XSL文件

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源List.html

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源Add.html

 

JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源edit.html

源代码下载:http://files.cnblogs.com/happyhippy/XML.rar(打开list.html查看效果)
现实效果图:
添加(zh):
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
修改(en):
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
删除(zh):
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源
删除(en):
JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源

5. 没弄过CSS,所以没有做界面美化...


本文转自Silent Void博客园博客,原文链接:http://www.cnblogs.com/happyhippy/archive/2007/07/26/831600.html,如需转载请自行联系原作者