jQuery를 사용하여 XML 노드 및 속성을 탐색하는 방법

php中世界最好的语言
풀어 주다: 2018-06-01 14:38:43
원래의
1310명이 탐색했습니다.

이번에는 jQuery를 사용하여 XML 노드와 속성을 탐색하는 방법과 jQuery를 사용하여 XML 노드와 속성을 탐색할 때 어떤 참고사항이 있는지 보여드리겠습니다. 다음은 실제 사례입니다. 살펴보겠습니다.

인터넷에서 jquery를 사용하여 xml을 탐색하는 방법은 여러 가지가 있지만 많은 기사를 읽어보니 속성 이름을 지정하지 않고는 탐색하는 방법이 없습니다.

좀 조사해 보니 여전히 jquery에 속성이 없는 것 같습니다. 원본 JS에 의존하기

다음은 JS 코드입니다

<script type="text/javascript" src="js/jquery.min.js"></script>
<p id="c"></p>
<script>
//用于缩进, 根据节点级别
var M_DOT = 1;
//递归函数, 用于遍历XML, 同时打印出来
function fn(obj){
  //定义一个变量, 用于缩进
  var dotString = "";
  //根据缩进量, 得到缩进的长度
  for(j = 1; j <= M_DOT; j++){
    dotString += "    ";
  }
  //jquery不支持attributes属性集, 转为原生js, 并赋给myObj变量
  var myObj = obj[0].attributes;
  //打印缩进
  $("#c").append(dotString)
  //打印属性集nodeName, nodeValue为原生JS, 分别表示为属性的名称, 和属性值
  $(myObj).each(function(i){
    $("#c").append( ($(this)[0].nodeName) + "=<u>" + ($(this)[0].nodeValue) + "</u> " );
  })
  //打印节点的文本
  //$("#c").append( "<b>" + obj.text() + "</b><br/>");
  //打印换行
  $("#c").append( "<br/>");
  //判断DOM有无子DOM
  if( obj.length > 0 ){
    //如果有, 遍历之
    obj.children().each(function(i){
      //缩进量加一
      M_DOT++;
      //递归遍历子DOM
      fn($(this));
      //缩进量加一
      M_DOT--;
    })
  }else{
    //如果没有子DOM, 返回false
    return false;
  }
}
//程序入口
$(document).ready(function() {
  //ajax获取xml数据, 详细用法见jquery手册
  $.get('config.xml', function(d){
    //len = $(d).find("*").length;
    //找到xml顶级结点. ('*:first'):就是查找第一个DOM. 详细说明见jquery手册
    //find, children(), each, 以及后面用到的 append 等请查阅jquery手册
    $(d).find('*:first').children().each(function(i){
      //找到顶级结点的子结点, 并把子结点对象传给fn函数
      fn($(this));
    });
  });
});
</script>
로그인 후 복사

첨부된 것은 XML 파일입니다

이름을 config.xml로 하고 위 js와 같은 디렉토리에 넣어주시고 둘 다 사이트에 넣어주세요

<?xml version="1.0" encoding="utf-8" ?>
<roster>
  <student ID="s101">
    <name>李华</name>
    <sex>男</sex>
    <birthday>1978.9.12</birthday>
    <score>92</score>
    <skill>Java</skill>
    <skill>Oracle</skill>
    <skill>C Sharp</skill>
    <skill>SQL Server</skill>
  </student>
  <student ID="s107">
    <name>李寻欢</name>
    <sex>男</sex>
    <birthday>1981.4.19</birthday>
    <score>58</score>
    <skill>UML</skill>
    <skill>C Sharp</skill>
    <skill>XML</skill>
    <skill>SQL Server</skill>
  </student>
</roster>
로그인 후 복사

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 자세한 내용은 PHP 중국어 웹사이트에서 다른 관련 기사도 주목해 주세요!

추천 도서:

JS에서 DOM 노드를 사용하는 방법

JS를 사용하여 버퍼링 동작을 구현하는 방법

위 내용은 jQuery를 사용하여 XML 노드 및 속성을 탐색하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿