`
maolin
  • 浏览: 11727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用JS查找XML内部节点与属性值

阅读更多
最近做项目,使用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...

    XML文件修改节点属性值(多种方法)

    本文将展示如何修改XML节点属性值的多种方法。首先,我们可以使用XmlDocument类来加载XML文档,然后修改文档的节点属性,最后保存更改。以下是一个具体的示例代码: ```csharp XmlDocument xml = new XmlDocument()...

    jQuery 1.5 遍历xml节点属性

    本文将详细讲解如何在jQuery 1.5版本中遍历XML节点属性,结合给定的资源——一个名为"test.html"的HTML文件和"jquery-1.5.js"的jQuery库。 首先,理解XML(Extensible Markup Language)是一种标记语言,用于存储和...

    javascript加载xml 并解析各节点的值(实现方法)

    在JavaScript中,XML(可扩展标记语言)是一种用于存储和传输...通过创建XMLDOM对象、加载XML文件、使用XPath或`getElementsByTagName`来查询节点,以及获取节点的属性值,我们可以轻松地解析XML文件并提取所需的信息。

    javascript读取XML文件方法

    本文将详细介绍如何使用JavaScript来读取XML文件,并进行相应的数据处理。 #### 二、JavaScript与XML的基本操作 ##### 1. 创建DOMDocument对象 在使用JavaScript处理XML之前,我们需要先创建一个`DOMDocument`对象...

    Javascript读取xml文件

    - **设置和获取属性值**:使用`setAttribute`、`getAttribute`等方法。 #### 四、案例分析 考虑以下示例代码: ```javascript function getTestXmlValue(){ var xmlDoc = new ActiveXObject("Microsoft.XMLDOM...

    javascript操作xml文件示例

    加载XML文件后,会得到一个`XMLDocument`对象,可以使用`getElementsByTagName`, `getElementById`, `getElementsByClassName`等方法获取XML节点。 3. **查询XML数据** - `getElementsByTagName`: 通过标签名查找...

    xml.rar_javascript_javascript xml_xml javascript_xml文件

    - `getAttribute()`/`setAttribute()`:获取或设置属性值。 - `hasAttribute()`/`removeAttribute()`:检查属性是否存在或移除属性。 7. **文本内容操作**: - `textContent`:获取或设置元素的文本内容。 - `...

    Javascript读取XML

    在与XML(可扩展标记语言)结合使用时,JavaScript可以方便地读取、解析和操作XML文档,实现数据的动态呈现。XML是一种结构化数据格式,常用于存储和交换数据,其语法与HTML相似但更为严格。 在提供的代码示例中,...

    JS操作XMLDOM(遍历和打印)

    4. **属性操作**:通过`getAttribute`和`setAttribute`读取和设置元素的属性值。 5. **节点操作**:`appendChild`、`removeChild`、`insertBefore`和`replaceChild`用于在DOM树中添加、删除、插入和替换节点。 6. **...

    js遍历xml,json学习

    在JavaScript中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,尤其在Web开发中广泛使用。本文将深入探讨如何使用JavaScript来遍历XML文档和处理JSON对象。 ...

    javascript操作XML

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") 'JAVASCRIPT中的创建对象 set objXml=CreateObject("Microsoft.XMLDOM") '创建解析器对象 objXml.async="false" objXml.load("test.xml") '装载xml文件 ...

    JS操作XML文件,兼容火狐、IE

    有了XML DOM对象,我们就可以使用DOM API来遍历和操作XML节点。例如,查找特定元素、获取属性值、添加或删除节点等。 ```javascript var root = xmlDoc.documentElement; // 获取根元素 var nodes = root....

    javascript获取xml节点的最大值(实现代码)

    在JavaScript中,获取XML文档中的特定节点值是一项常见的任务,特别是在处理动态数据或者与服务器进行交互的场景。在这个例子中,我们需要找到XML文档中`&lt;Secondss&gt;`节点的`times`属性值小于当前时间(以毫秒计)的...

    js实现对xml文件的解析

    在JavaScript(JS)中,XML(可扩展标记语言)文件的解析是一项常见的任务,尤其在处理数据交换或页面动态更新时。XML作为一种结构化数据格式,可以存储各种类型的信息,而JS作为前端开发的主要语言,提供了多种方法...

    XML基础教程与实验指导

    XPath是一种在XML文档中查找信息的语言,用于选取节点(元素、属性、文本等)。其主要功能包括: 1. **节点选择**:如 `/bookstore/book` 选取 bookstore 元素下的所有 book 子元素。 2. **节点测试**:如 `//title`...

    Javascript操作XML和HTML

    2. **访问XML节点**:通过DOM API,可以获取XML文档的节点,并访问其属性。如: ```javascript let root = xmlDoc.documentElement; let childNodes = root.getElementsByTagName('nodeName'); ``` 3. **修改...

    javascript节点操作DOM属性和方法

    - 属性操作:`node.getAttribute(name)` 获取属性值,`node.setAttribute(name, value)` 设置属性值,`node.removeAttribute(name)` 删除属性。 - 内容操作:`node.innerHTML` 用于获取或设置元素的HTML内容,`node....

    web的xml技术

    - **DOM操作**:使用JavaScript操作XML文档。 #### XMLHttpRequest对象 - **发送HTTP请求**:用于从服务器请求数据。 - **接收HTTP响应**:处理服务器返回的数据。 #### XMLParser - **解析XML文档**:将XML字符串...

Global site tag (gtag.js) - Google Analytics