自学Xpath的几个例子

  Xpath可以对XML文件中的信息进行查找,并对XML文件树形结构进行遍历。详细语法请转:http://www.w3school.com.cn/xpath/index.asp

例子:利用在JavaScript脚本中利用Xpath对XML文件中内容进行查询,将查询结果显示到html文件中

ex1.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Xpath Basis-1</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="author" content="Wayne Ng" />
    <meta name="description" content="Xpath basis1" />
    <meta name="revised" content="Wayne Ng, 2016/1/26" />
</head>
<body onload = "startLoad()">
    <p>所有英雄职业:</p>
    <div id = "text"></div>
    <script type="text/javascript" src="func1.js"></script>
</body>
</html>

ex1.xml文件:

<?xml version = "1.0" encoding = "UTF-8"?>
<!--
    Date:2016/1/26
    Writer:Wayne Ng
    Theme:MapleStory hero briefInstruction
-->
<game>
    <warrior>
        <hero>
            <name>英雄</name>
            <weapons>剑、斧、钝器</weapons>
            <skill>终极打击</skill>
        </hero>
        <hero>
            <name>圣骑士</name>
            <weapons>剑、钝器</weapons>
            <skill>神圣冲击</skill>
        </hero>
        <hero>
            <name>黑骑士</name>
            <weapons>长枪、矛</weapons>
            <skill>黑暗穿刺</skill>
        </hero>
    </warrior>
    <magician>
        <hero>
            <name>主教</name>
            <weapons>长杖、短仗</weapons>
            <skill>圣光普照</skill>
        </hero>
        <hero>
            <name>火毒法师</name>
            <weapons>长杖、短仗</weapons>
            <skill>末日火焰</skill>
        </hero>
        <hero>
            <name>冰雷法师</name>
            <weapons>长杖、短仗</weapons>
            <skill>冰咆哮</skill>
        </hero>
    </magician>
    <archer>
        <hero>
            <name>神射手</name>
            <weapons>弓</weapons>
            <skill>暴风箭雨</skill>
        </hero>
        <hero>
            <name>箭神</name>
            <weapons>弩</weapons>
            <skill>终极扫射</skill>
        </hero>
    </archer>
    <ranger>
        <hero>
            <name>侠盗</name>
            <weapons>短剑、短刀</weapons>
            <skill>暗杀</skill>
        </hero>
        <hero>
            <name>隐士</name>
            <weapons>拳套</weapons>
            <skill>四连镖</skill>
        </hero>
        <hero>
            <name>暗影双刀</name>
            <weapons>短剑、短刀</weapons>
            <skill>终极斩</skill>
        </hero>
    </ranger>
</game>

func1.js文件:

//载入待解析XML文件
function loadXMLDoc(name){
    if(window.XMLHttpRequest){
        var xhttp = new XMLHttpRequest();
    }
    else{
        var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttp.open("GET", name , false);
    xhttp.send(null);
    return xhttp.responseXML;
}

function startLoad(){
    var xml = loadXMLDoc("ex1.xml");
    var path = "//name";
    var txt = "";
    //利用Xpath来查找感兴趣消息
    if(window.ActiveXObject){
        var nodes = xml.selectNodes(path);
        for(var i = 0; i < nodes.length; ++i){
            txt += nodes[i].childNodes[0].nodeValue + "<br />";
        }
    }
    else{
        var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
        var result = nodes.iterateNext();
        while(result){
            txt += result.childNodes[0].nodeValue + "<br />";
            result = nodes.iterateNext();
        }
    }
    document.getElementById("text").innerHTML = txt;
}

显示效果:

      2016/1/26  By 野马菌

时间: 2024-10-12 21:45:17

自学Xpath的几个例子的相关文章

自学XSL的几个例子

XSL 指扩展样式表语言(EXtensible Stylesheet Language).XSL用来描述XML文件的格式,类似于我们可以用CSS描述HTML的格式.具体用法请转:http://www.w3school.com.cn/xsl/index.asp 例子:利用XSL来定制XML文件的显示 ex1.xml文件: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type = &q

自学php的几个例子(包含AMP(Apache、MySQL、PHP)环境搭建链接)

学习PHP之前需要先搭建PHP运行的环境(即服务器+PHP+数据库)来使PHP成功运行,具体环境搭建教程可参考pharen(http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html)的教程(亲测可用),教程中一些资源链接可能已经失效,下面给出部分资源链接:PHP资源:http://windows.php.net/download#php-5.6 Apache(msi安装包)资源:http://archive.apache.org/

自然语言处理一些读书笔记和自己的思考。

在知乎上搜索相关问题,有人推荐<数学之美>,之前粗略看过一次,这次想重新看一下并且做个读书笔记.下面是关于自然语言理解方面的一些读书笔记和自己的思考. 一. 自然语言处理历史: 自然语言处理最初发展的20多年里,相关科学家都极力通过电脑模拟人脑,试图用这种方式来处理人类语言,但是这种方式被证明是行不通的,成功几乎为零.NLP发展的第二阶段是70年代之后,科学家们终于找到了基于数学模型和统计的方法. 第一阶段的时候,学术界对人工智能和自然语言理解的普遍认识是:要让机器完成翻译或者语音识别等等,必

HtmlAgilityPack 总结(一)

一个解析html的C#类库HtmlAgilityPack, HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档(在B/S结构的程序中客户端可以用Javascript.jquery解析html).截止到本文发表时,HtmlAgilityPack的最新版本为 1.4.6.下载地址:http://htmlagilitypack.codeplex.com/.最新版本支持Linq to Objects ( LINQ to Xml ). 准备:

Java大部分的内容

写在前面: 过去,我学习Java的时候,全部采取的是“短平快”的培训教材: 1.  它们会把重点列举出来 2.  在学校里老师不看基础,只看到你做了什么产品 现在工作了,觉得工作的内容并没有什么难度,多出来的时间,巩固基础. 正文: 先说一句话: 只会Java并不可耻   (即使你不仅仅只会Java) 1. <Java自学教程>  快速根据例子把Java大部分内容 遍历一遍. 2. <Java语言程序设计>(基础篇和进阶教程) 3.  辅助教材<疯狂Java精髓>  (

[译文]casperjs使用说明-选择器

casperjs的选择器可以在dom下工作,他既支持css也支持xpath. 下面所有的例子都基于这段html代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>My page</title> </head> <body> <h1 class="page-title">Hello<

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然

.Net解析html文档类库HtmlAgilityPack完整使用说明

在前几篇文章中([搜房网房产数据采集程序demo--GeckoWebBrowser实例] )都有提到一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享一下. HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档(在B/S结构的程序中客户端可以用Javascript.jquery解析html).截止到本文发表时,HtmlAgilityPack的最新版本为 1.4.6.下载地址:http:/

架构师成长之路4.4-多维监控体系_zabbix

点击返回架构师成长之路 架构师成长之路4.4-多维监控体系_zabbix 点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路[第一回]:初识Zabbix 1.1 自学Zabbix1.1-简介 1.2 自学Zabbix1.2-zabbix特性 1.3 自学Zabbix1.3-zabbix进程 自学Zabbix之路[第二回]:安装Zabbix 2.1 自学Zabbix2.1-安装需求 2.2 自学Zabbix2.2-服务器端环境