当前位置: 首页 > news >正文

用XPath和XSLT来更好的处理XML



代码如下:

<html>
<head>
<title>Hello Ajax version 7</title>
<style type='text/css'>
* { font-family: Tahoma, Arial, sans-serif; }
#helloTitle{ color: #48f; }
.sidebar{
  background-color: #adf;
  color: navy;
  border: solid blue 1px;
  width: 180px;
  height: 200px;
  padding: 2px;
  margin: 3px;
  float: left;
}
</style>
<script type='text/javascript' src='sarissa.js'></script>
<script type='text/javascript' src='sarissa_ieemu_xpath.js'></script>
<script type='text/javascript' src='sarissa_dhtml.js'></script>
<script type='text/javascript'>

var xslDoc=null;

window.οnlοad=function(){

  xslDoc=Sarissa.getDomDocument();
  xslDoc.load("recipe.xsl");

  document.getElementById('helloBtn').οnclick=function(){
    var name=document.getElementById('helloTxt').value;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "hello7.jsp?name="+encodeURI(name),true);
    xhr.onreadystatechange=function(){
      if (xhr.readyState==4){
        update(xhr.responseXML);
      };
    };
    xhr.send("");
  }
}

function update(doc){
  var initial=doc.selectSingleNode('/person/@initial').value;
  var name=doc.selectSingleNode('/person/name/text()').nodeValue;
  document.getElementById('helloTitle').innerHTML="<h1>Hello, <b><i>"+name+"</i></b></h1>";

  var likesList=doc.selectNodes('/person/likes/item');
  var likes=[];
  for (var i=0;i<likesList.length;i++){
    var itemNode=likesList[i];
    likes[likes.length]=itemNode.firstChild.data;
  }
  var likesHTML='<h5>'+initial+' likes...</h5><hr/>';
  for (var i=0;i<likes.length;i++){
    likesHTML+=likes[i]+"<br/>";
  }
  document.getElementById('likesList').innerHTML=likesHTML;

  var personNode=doc.selectSingleNode('/person');
  var xsltproc=new XSLTProcessor();

  xsltproc.importStylesheet(xslDoc);
  Sarissa.updateContentFromNode(personNode,document.getElementById('ingrList'),xsltproc);
}

</script>
</head>
<body>

<div id='likesList' class='sidebar'>
<h5>Likes</h5><hr/>
</div>
<div id='ingrList' class='sidebar'>
<h5>Ingredients</h5><hr/>
</div>
<div>
<div id='helloTitle'>
<h1>Hello, stranger</h1>
</div>
<p>Please introduce yourself by entering your name in the box below</p>
<input type='text' size='24' id='helloTxt'></input> <button id='helloBtn'>Submit</button>
</div>
</body>

</html>
另外我们应用了出源代码之外的几个库,(sarissa.js   sarissa_ieemu_xpath.js      sarissa_dhtml.js)这里截图上来,可以找资源下载的哈:







相关文章:

  • sublime text3主题透明
  • JAR文件包及jar命令详解
  • String和Integer的特例
  • 卸载 Microsoft SQL Server 2008(亲身实践过的,完全可以卸载干净!)
  • Java项目打包工具安装失败解决方法
  • phpstorm+Xdebug断点调试PHP
  • java项目使用exe4j打包成exe文件
  • Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)
  • Java对于私有变量的“暴力反射”技术
  • Java相关书籍推荐
  • Java在利用反射条件下替换英文字母中的值
  • sql server 2008如何导入mdf,ldf文件
  • Servlet 中文乱码问题及解决方案剖析
  • 4、模拟器中文输入
  • Tomcat7.0修改默认的路径访问自己的项目
  • 【347天】每日项目总结系列085(2018.01.18)
  • Docker容器管理
  • golang中接口赋值与方法集
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java比较器对数组,集合排序
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • nginx 负载服务器优化
  • Redux系列x:源码分析
  • web标准化(下)
  • 闭包,sync使用细节
  • 高性能JavaScript阅读简记(三)
  • 将 Measurements 和 Units 应用到物理学
  • 面试遇到的一些题
  • 设计模式 开闭原则
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 微服务框架lagom
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一天一个设计模式之JS实现——适配器模式
  • 怎么把视频里的音乐提取出来
  • 智能网联汽车信息安全
  • Python 之网络式编程
  • ​Java并发新构件之Exchanger
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # 数论-逆元
  • #define与typedef区别
  • (5)STL算法之复制
  • (C语言)fread与fwrite详解
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (ZT)一个美国文科博士的YardLife
  • (二)学习JVM —— 垃圾回收机制
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (接口自动化)Python3操作MySQL数据库
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (正则)提取页面里的img标签
  • (转)LINQ之路
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)shell调试方法