`
ye_jinghua
  • 浏览: 31718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

XML数据岛应用--选择多个用户ID简单实现

阅读更多
在页面上选择多个用户ID用 XML+javascript 简单实现
首先生成用户信息的XML文件,生成代码如下:
java 代码
  1.   
  2. import org.w3c.dom.*;   
  3. import javax.xml.parsers.*;   
  4. import javax.xml.transform.*;   
  5. import javax.xml.transform.dom.DOMSource;   
  6. import javax.xml.transform.stream.StreamResult;   
  7. import java.io.*;   
  8. public class Test {   
  9. private Document document;   
  10. private String filename;   
  11.   
  12. public Test(String name) throws ParserConfigurationException{   
  13. filename=name;   
  14. DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();   
  15. DocumentBuilder builder=factory.newDocumentBuilder();   
  16. document=builder.newDocument();   
  17. }   
  18. public void toWrite(Element root,String textuserName,String textcnName,String userId){   
  19. Element User=document.createElement("User");   
  20. root.appendChild(User);   
  21. Element userid=document.createElement("userid");   
  22. userid.appendChild(document.createTextNode(userId));   
  23. User.appendChild(userid);   
  24. Element userName=document.createElement("userName");   
  25. userName.appendChild(document.createTextNode(textuserName));   
  26. User.appendChild(userName);   
  27. Element cnName=document.createElement("cnName");   
  28. cnName.appendChild(document.createTextNode(textcnName));   
  29. User.appendChild(cnName);   
  30. }   
  31. public void toSave(){   
  32. try{   
  33. TransformerFactory tf=TransformerFactory.newInstance();   
  34. Transformer transformer=tf.newTransformer();   
  35. DOMSource source=new DOMSource(document);   
  36. transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312");   
  37. transformer.setOutputProperty(OutputKeys.INDENT,"yes");   
  38. PrintWriter pw=new PrintWriter(new FileOutputStream(filename));   
  39. StreamResult result=new StreamResult(pw);   
  40. transformer.transform(source,result);   
  41. }   
  42. catch(TransformerException mye){   
  43. mye.printStackTrace();   
  44. }   
  45. catch(IOException exp){   
  46. exp.printStackTrace();   
  47. }   
  48. }   
  49. public static void main(String args[]){   
  50. try{   
  51. /**  在WEB中得到绝对路径
  52. String FilePath=this.getClass().getClassLoader().getResource("").getPath();  
  53.                            FilePath=FilePath.substring(1,FilePath.length()-17)+"/webpage/keepWatch/";//获取根目录绝对路径  
  54.                            FilePath=FilePath.replaceAll("%20", " ")+"users.xml";  
  55.                         CreateUserXML myxml=new CreateUserXML(FilePath);  
  56. */  
  57. Test myxml=new Test("E:\\users.xml");   
  58. Element root=myxml.document.createElement("Users");   
  59. myxml.document.appendChild(root);   
  60. myxml.toWrite(root,"admin","管理员","001");   
  61. myxml.toWrite(root,"yjh","叶先生","002");   
  62. myxml.toWrite(root,"yjw","杨先生","003");   
  63. myxml.toSave();   
  64. System.out.print("Your writing is successful.");   
  65. }   
  66. catch(ParserConfigurationException exp){   
  67. exp.printStackTrace();   
  68. System.out.print("Your writing is failed.");   
  69. }    
  70. }   
  71. }  
HTML中引用的xml 代码

 

  1. <?xml version="1.0" encoding="GB2312"?>  
  2. <Users>  
  3.     <User>  
  4.         <userid>647</userid>  
  5.         <userName>小李</userName>  
  6.         <cnName>小李</cnName>  
  7.     </User>  
  8.     <User>  
  9.         <userid>1</userid>  
  10.         <userName>admin</userName>  
  11.         <cnName>管理员</cnName>  
  12.     </User>  
  13.     <User>  
  14.         <userid>2</userid>  
  15.         <userName>qq</userName>  
  16.         <cnName>QQ</cnName>  
  17.     </User>  
  18.     <User>  
  19.         <userid>4</userid>  
  20.         <userName>sun</userName>  
  21.         <cnName>SUN</cnName>  
  22.     </User>  
  23.     <User>  
  24.         <userid>6</userid>  
  25.         <userName>small</userName>  
  26.         <cnName>SMALL</cnName>  
  27.     </User>  
  28.     <User>  
  29.         <userid>1745</userid>  
  30.         <userName>王处长</userName>  
  31.         <cnName>王天龙</cnName>  
  32.     </User>  
  33.     <User>  
  34.         <userid>648</userid>  
  35.         <userName>小王</userName>  
  36.         <cnName>小王</cnName>  
  37.     </User>  
  38. </Users>  

选择多用户的HTML页代码:

HTML代码
  1. <html>  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  4. <title>选择XML数据</title>  
  5. </head>  
  6. <script language="JavaScript1.2">  
  7.        
  8.     if (document.layers) {n=1;ie=0}   
  9.     if (document.all) {n=0;ie=1}   
  10.     var objElement;   
  11.     function init() {   
  12.        
  13.             if (n) poptext = document.poptextDiv   
  14.             if (ie) poptext = poptextDiv.style   
  15.                
  16.     }   
  17.     //Hide-Show Layer   
  18.     function hidepoptext(e) {   
  19.         objElement=e;   
  20.         var ttop = objElement.offsetTop;    //TT控件的定位点高   
  21.         var thei = objElement.clientHeight; //TT控件本身的高   
  22.         var tleft = objElement.offsetLeft;  //TT控件的定位点宽   
  23.         hidepopcolse();   
  24.         var obj = document.getElementById("poptextDiv");   
  25.         obj.style.left  =tleft;   
  26.         obj.style.top=ttop+thei+6;   
  27.         if (n) {   
  28.             poptext.visibility = "show";   
  29.                }   
  30.         if (ie) {   
  31.             poptext.visibility = "visible";   
  32.             }            
  33.     var selectUser=document.getElementsByName("selectUser");       
  34.                 for (var i = 0; i < selectUser.length; i++)    
  35.                 {    
  36.                         if(selectUser[i].checked)selectUser[i].checked=false;   
  37.                 }   
  38.     }   
  39.     function hidepopcolse(){   
  40.                 if (n) {   
  41.                     poptext.visibility = "hide";   
  42.                     return;   
  43.                 }              
  44.                 if (ie) {   
  45.                     poptext.visibility = "hidden";   
  46.                     return;   
  47.                }   
  48.         }   
  49.     function selectUsers(element){    
  50.                 var selectUser=document.getElementsByName("selectUser");   
  51.                 var userId=document.getElementsByName("userId");   
  52.                 var userName=document.getElementsByName("userName");   
  53.                 var cnName=document.getElementsByName("cnName");   
  54.                 var values="";   
  55.                 if(objElement.value=="")objElement.value==",";   
  56.                     for (var i = 0; i < selectUser.length; i++)    
  57.                     {    
  58.                             if(selectUser[i].checked)values+=userName[i].value+",";   
  59.                     }objElementobjElement.value=objElement.value+values;   
  60.                     hidepopcolse();   
  61.         }    
  62.   
  63. </script>  
  64. <body onLoad="init()">  
  65. <xml id"island" src"users.xml" ></xml>  
  66. <input type="text" id="userId1" name="userId1" onClick="hidepoptext(this)">  
  67. <input type="text" id="userId2" name="userId2" onClick="hidepoptext(this)">  
  68. <input type="text" id="userId3" name="userId3" onClick="hidepoptext(this)">  
  69.   
  70.       <div id="poptextDiv"  align"center" style="visibility:hidden;position:absolute;border:1px solid #000000;z-index:1;background:#eeeeee">  
  71.       <table width="200" border="0">  
  72.         <tr>  
  73.           <td><table id="userTable" DATAPAGESIZE="10" width"264" height="67" align="center" datasrc"#island"  >  
  74.     <thead>  
  75.       <tr>  
  76.         <th width="52" bordercolor="#CCCCCC" bgcolor="#CCCCCC"> 选择 </th>  
  77.         <th width="68" bordercolor="#CCCCCC" bgcolor="#CCCCCC"> ID </th>  
  78.         <th width="68" bordercolor="#CCCCCC" bgcolor="#CCCCCC"> 姓名 </th>  
  79.       </tr>  
  80.     </thead>  
  81.     <tbody>  
  82.       <tr>  
  83.         <td align"center" bordercolor="#FFFFCC" >  
  84.         <input type="checkbox" id="selectUser" name="selectUser" >  
  85.           <input type="hidden" id="userId" name="userId" datafld"userid" >  
  86.           <input type="hidden" id="userName"name="userName" datafld"userName" >  
  87.           <input type="hidden" id="cnName"name="cnName" datafld"cnName" >  
  88.         </td>  
  89.         <td align"center" bordercolor="#FFFFCC" ><span datafld"userName" ></span></td>  
  90.         <td align"center" bordercolor="#FFFFCC" ><span datafld"cnName" ></span></td>  
  91.       </tr>  
  92.     </tbody>  
  93.   
  94. </table>  
  95. <table align"center">  
  96.  <tr>  
  97.         <th align"center"><a onClick="document.all.userTable.previousPage()">上一页</a>  
  98. <a onClick="document.all.userTable.nextPage()">下一页</a> </th>  
  99.   </tr>  
  100. </table></td>  
  101.         </tr>  
  102.      <tr>  
  103.         <th align"center"><input type="button" value="确定" onClick="selectUsers()" ><input type="button" value="关闭" onClick="hidepopcolse()" ></th>  
  104.   </tr>  
  105. </table></td>  
  106.         </tr>  
  107.       </table>  
  108. </div>     
  109. </body>  
  110. </html>  
分享到:
评论

相关推荐

    XML之数据岛

    随着现代Web开发标准的发展,XML数据岛的使用已经逐渐减少,更多的转向了基于RESTful API和JSON的数据交换。 6. **替代方案**:现在,许多现代Web应用程序倾向于使用JSON(JavaScript Object Notation)作为数据...

    XML的数据源对象(数据岛)源代码

    在实际项目中,应根据需求选择合适的技术栈,如现代前端框架(React, Vue, Angular等)提供的数据绑定机制,它们在很多方面已经取代了XML数据岛的功能,但理解XML数据岛的概念和技术仍然是提升开发者技能的重要一环...

    用XML数据岛创建上下文菜单

    在XML数据岛上定义菜单涉及创建一个包含`&lt;contextmenu&gt;`和`&lt;item&gt;`的结构。例如: ```xml &lt;xml id="contextDef"&gt; &lt;xmldata&gt; &lt;contextmenu id="demo"&gt; &lt;item id="viewsource" value="查看源文件"/&gt; &lt;item id=...

    Web设计中如何使用XML数据

    如果XML数据岛包含多个相同的元素(如 `&lt;name&gt;` 或 `&lt;sex&gt;`),可以使用 `&lt;TABLE&gt;` 标签来显示所有实例,每个 `&lt;member&gt;` 对象将对应表格的一行: ```html &lt;table datasrc="#xmldb" border="1"&gt; &lt;th&gt;Name &lt;th&gt;...

    XML考试复习大纲及参考

    - **引入原因**:当多个来源的XML文档合并时,可能会出现标签名重复的问题。 #### 第四章:DTD(Document Type Definition) - **4.1 DTD的作用** - 定义了XML文档的合法结构。 - **4.2 DTD元素** - **元素...

    xml web service 学习资料

    4. **XML数据岛**: 指在HTML页面中嵌入的XML代码块,通常使用`&lt;XML&gt;`标记开始,支持ID和SRC属性进行引用和加载外部XML数据。 5. **XML对象模型 (XML DOM)**: 提供了一个树状结构来表示XML文档,使开发人员能够读取...

    利用AJAX与数据岛实现无刷新绑定

    在示例中,XML数据岛定义如下: ```xml &lt;xml ID="xmlData" name="xmlData"&gt; &lt;AUTHOR&gt;John Smith &lt;GENERATOR&gt;Visual Notepad &lt;PAGETYPE&gt;Reference &lt;ABSTRACT&gt;Specifies a data island &lt;!-- 更多METADATA...

    冒险岛079所有怪物代码.txt

    XML(Extensible Markup Language)是一种用来标记数据的标记语言,它允许用户自定义标签,非常适用于存储和传输数据。在本文件中,使用的标签主要有`&lt;imgdir&gt;`、`&lt;string&gt;`等。 #### 文件头 文件开头部分为: ```...

    精通JavaScript

    1.本书附源代码共计381个,其运行环境如下: IE 5或更高版本 Mozilla Firefox 1.5.0.3或更高版本 服务器采用IIS5.1 或以上版本 数据库使用MS Access 2000以上 2.本书所附光盘实例代码: 第1章(\第1章) 查看...

    RunTourist:留尼汪岛上的Android应用程序项目

    用户可以通过定制适配器(Adapter)将数据模型与视图进行绑定,实现动态加载和更新。 - 视图列表的每个条目通常包含一个图片和相关描述,点击后可以触发新的活动(Activity)或Fragment,显示更详细的信息,如地点...

    QlikView 11 中文版技术参考

    这允许用户在容器对象中同时查看并与多个对象互动。 操作 QlikView 11 包括了 6 项新操作: 清除字段 设置状态名称 复制状态内容 切换状态目录 重新加载 动态更新 欲了解更多信息,请查看添加操作对话框。 ...

    ViewPagerExample:简单视图寻呼机示例

    在Android开发中,ViewPager是一个非常重要的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现平滑的屏幕间导航。在这个“ViewPagerExample”项目中,我们将深入理解如何在应用中集成并使用ViewPager,...

    HTML5、CSS3、JS.docx

    1. **选择器**:如类选择器(`.class`)、ID选择器(`#id`)、元素选择器(`element`)等。 2. **盒模型**:包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。 3. **布局**:传统流体布局、定位...

    js使用小技巧

    简单邮件 &lt;a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy"&gt; 快速转到位置 obj.scrollIntoView(true) 锚 &lt;a name="first"&gt; &lt;a href="#first"&gt;anchors 网页传递参数 location.search(); 可编辑 obj...

Global site tag (gtag.js) - Google Analytics