最近做项目,使用js对xml进行解析,其中需要对传入的值在xml中进行查询,从而查找具有此属性节点的其余属性,上网查了一下,引用xml两种不同模式,分别做说明,直接上代码:
xml.html:
<html>
<script>
function createXML(){
var xmlVersion=["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDoc"];
for(var i=0;i<xmlVersion.length;i++){
try{
var xmlDoc=new ActiveXObject(xmlVersion[i]);
return xmlDoc;
}catch(Exception){
//不处理
}
}
throw new Error("系统没有安装MSXML");
}
var xmldoc=createXML();
xmldoc.async=false;
xmldoc.load("2.xml");
function byname(){
var temp="";
var str=document.all.bookname.value;
var reg="/bookstore/book[name='"+str+"']";
var target=xmldoc.documentElement.selectNodes(reg);
alert("查询长度为:"+target.length);
if(target.length==0){
alert("没有找到与此匹配的书名");
}else{
for(var i=0;i<target.length;i++){
temp+="书名:"+target[i].childNodes[0].text+"<br>";
temp+="价格:"+target[i].childNodes[1].text+"<br>";
temp+="作者:"+target[i].childNodes[2].text+"<br>";
}
document.getElementById("sp").innerHTML=temp;
}
}
function byprice(){
var temp="";
var str=document.all.bookprice.value;
var reg="/bookstore/book[price<"+str+"]";
var target=xmldoc.documentElement.selectNodes(reg);
if(target.length==0){
alert("没有找到与此匹配的书名");
}else{
for(var i=0;i<target.length;i++){
temp+="书名:"+target[i].childNodes[0].text+"<br>";
temp+="价格:"+target[i].childNodes[1].text+"<br>";
temp+="作者:"+target[i].childNodes[2].text+"<br>";
}
document.getElementById("sp").innerHTML=temp;
}
}
function byauthor(){
var temp="";
var str=document.all.bookauthor.value;
var reg="/bookstore/book[author='"+str+"']";
var target=xmldoc.documentElement.selectNodes(reg);
if(target.length==0){
alert("没有找到与此匹配的书名");
}else{
for(var i=0;i<target.length;i++){
temp+="书名:"+target[i].childNodes[0].text+"<br>";
temp+="价格:"+target[i].childNodes[1].text+"<br>";
temp+="作者:"+target[i].childNodes[2].text+"<br>";
}
document.getElementById("sp").innerHTML=temp;
}
}
function byBid()
{
var tmep = "";
var str= document.getElementById("bid").value;
var reg = "/bookstore/shape[text()="+str+"]"; //注意此处Xpath设置与以上不同
var tar = xmldoc.documentElement.selectNodes(reg);
alert("查询长度为:"+tar.length);
for(var i=0;i<tar.length;i++)
{
var sss = tar[i].getAttribute("value");
alert(sss);
}
}
</script>
<body>
<center>
按书名查找:<input type=text name="bookname">
<input type=button value="开始查找" onclick="byname()"><br>
按价格查找:<input type=text name="bookprice">
<input type=button value="开始查找" onclick="byprice()"><br>
按作者查找:<input type=text name="bookauthor">
<input type=button value="开始查找" onclick="byauthor()"><br>
自定义查找:<input type="text" name="bid" id="bid">
<input type="button" value="开始查找" onclick="byBid()"><br>
<span id="sp"></span>
</center>
</body>
</html>
2.xml
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<bookstore>
<book>
<name>三国演义</name>
<price>350.00</price>
<author>陶清华</author>
</book>
<book>
<name>西游记</name>
<price>450.00</price>
<author>郭勇</author>
</book>
<shape id="2" name="video_pt" value="视频表">23</shape>
<shape id="3" name="asj_pt" value="案事件表">322</shape>
</bookstore>
注意,此处应用两种不同表现的xml模式,分别使用不同的Xpath,野人献曝,希望对需要的同志有所帮助;
分享到:
相关推荐
无论使用哪种编程语言,获取XML节点的属性和文字都遵循类似的步骤:解析XML文档,找到目标节点,然后读取其属性和文本内容。理解这些基本操作对于处理XML数据至关重要,尤其是在需要从XML文件中提取信息或构建XML...
本文将展示如何修改XML节点属性值的多种方法。首先,我们可以使用XmlDocument类来加载XML文档,然后修改文档的节点属性,最后保存更改。以下是一个具体的示例代码: ```csharp XmlDocument xml = new XmlDocument()...
本文将详细讲解如何在jQuery 1.5版本中遍历XML节点属性,结合给定的资源——一个名为"test.html"的HTML文件和"jquery-1.5.js"的jQuery库。 首先,理解XML(Extensible Markup Language)是一种标记语言,用于存储和...
在JavaScript中,XML(可扩展标记语言)是一种用于存储和传输...通过创建XMLDOM对象、加载XML文件、使用XPath或`getElementsByTagName`来查询节点,以及获取节点的属性值,我们可以轻松地解析XML文件并提取所需的信息。
本文将详细介绍如何使用JavaScript来读取XML文件,并进行相应的数据处理。 #### 二、JavaScript与XML的基本操作 ##### 1. 创建DOMDocument对象 在使用JavaScript处理XML之前,我们需要先创建一个`DOMDocument`对象...
- **设置和获取属性值**:使用`setAttribute`、`getAttribute`等方法。 #### 四、案例分析 考虑以下示例代码: ```javascript function getTestXmlValue(){ var xmlDoc = new ActiveXObject("Microsoft.XMLDOM...
加载XML文件后,会得到一个`XMLDocument`对象,可以使用`getElementsByTagName`, `getElementById`, `getElementsByClassName`等方法获取XML节点。 3. **查询XML数据** - `getElementsByTagName`: 通过标签名查找...
- `getAttribute()`/`setAttribute()`:获取或设置属性值。 - `hasAttribute()`/`removeAttribute()`:检查属性是否存在或移除属性。 7. **文本内容操作**: - `textContent`:获取或设置元素的文本内容。 - `...
在与XML(可扩展标记语言)结合使用时,JavaScript可以方便地读取、解析和操作XML文档,实现数据的动态呈现。XML是一种结构化数据格式,常用于存储和交换数据,其语法与HTML相似但更为严格。 在提供的代码示例中,...
4. **属性操作**:通过`getAttribute`和`setAttribute`读取和设置元素的属性值。 5. **节点操作**:`appendChild`、`removeChild`、`insertBefore`和`replaceChild`用于在DOM树中添加、删除、插入和替换节点。 6. **...
在JavaScript中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,尤其在Web开发中广泛使用。本文将深入探讨如何使用JavaScript来遍历XML文档和处理JSON对象。 ...
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") 'JAVASCRIPT中的创建对象 set objXml=CreateObject("Microsoft.XMLDOM") '创建解析器对象 objXml.async="false" objXml.load("test.xml") '装载xml文件 ...
有了XML DOM对象,我们就可以使用DOM API来遍历和操作XML节点。例如,查找特定元素、获取属性值、添加或删除节点等。 ```javascript var root = xmlDoc.documentElement; // 获取根元素 var nodes = root....
在JavaScript中,获取XML文档中的特定节点值是一项常见的任务,特别是在处理动态数据或者与服务器进行交互的场景。在这个例子中,我们需要找到XML文档中`<Secondss>`节点的`times`属性值小于当前时间(以毫秒计)的...
在JavaScript(JS)中,XML(可扩展标记语言)文件的解析是一项常见的任务,尤其在处理数据交换或页面动态更新时。XML作为一种结构化数据格式,可以存储各种类型的信息,而JS作为前端开发的主要语言,提供了多种方法...
XPath是一种在XML文档中查找信息的语言,用于选取节点(元素、属性、文本等)。其主要功能包括: 1. **节点选择**:如 `/bookstore/book` 选取 bookstore 元素下的所有 book 子元素。 2. **节点测试**:如 `//title`...
2. **访问XML节点**:通过DOM API,可以获取XML文档的节点,并访问其属性。如: ```javascript let root = xmlDoc.documentElement; let childNodes = root.getElementsByTagName('nodeName'); ``` 3. **修改...
- 属性操作:`node.getAttribute(name)` 获取属性值,`node.setAttribute(name, value)` 设置属性值,`node.removeAttribute(name)` 删除属性。 - 内容操作:`node.innerHTML` 用于获取或设置元素的HTML内容,`node....
- **DOM操作**:使用JavaScript操作XML文档。 #### XMLHttpRequest对象 - **发送HTTP请求**:用于从服务器请求数据。 - **接收HTTP响应**:处理服务器返回的数据。 #### XMLParser - **解析XML文档**:将XML字符串...