IDL解析XML文档同样也有2种方法:DOM和SAX方式;两种方法在IDL自带的帮助里面有详细介绍,可以去查看。

IDL 源码PRO sample_recurse, oNode, indent

  COMPILE_OPT idl2
  ON_ERROR ,2

  ; "Visit" the node by printing its name and value
  PRINT, indent GT 0 ? STRJOIN(REPLICATE(' ', indent)) : '', $
    oNode->GetNodeName(), ':', oNode->GetNodeValue()

  ; Visit children
  oSibling = oNode->GetFirstChild()
  WHILE OBJ_VALID(oSibling) DO BEGIN
    SAMPLE_RECURSE, oSibling, indent+3
    oSibling = oSibling->GetNextSibling()
  ENDWHILE
END

这种是基于IDLffDOMNode类的遍历方式,首先打印输出自身,递归处理首个子节点,再递归处理获取其它子节点。Elegant,代码很精练。要学习这种风格。

IDL 遍历 XML文档示例的更多相关文章

  1. XML DOM 遍历Xml文档

    1.xml文档内容: <?xml version="1.0" encoding="utf-8" ?> <bookstore> <b ...

  2. 【转】循环递归遍历XML文档或按某要求遍历XML文档

    <?xml version="1.0" encoding="UTF-8"?> <catalog> <cd> <titl ...

  3. C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

    XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...

  4. [VBS]遍历XML文档

    一.脚本源码 使用VBS脚本遍历XML文件 Option Explicit '定义常量 '元素 '文本 'CDATA '实体引用 '实体 '处理指令 '注释 '文档类型 '遍历文件 NameList. ...

  5. dom4j创建和解析xml文档

    DOM4J解析  特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开 ...

  6. dom4j读写XML文档

    dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...

  7. XPath操作XML文档

    NET框架下的Sytem.Xml.XPath命名空间提供了一系列的类,允许应用XPath数据模式查询和展示XML文档数据. 3.1XPath介绍 主要的目的是在xml1.0和1.1文档节点树种定位节点 ...

  8. 文档对象模型操作xml文档

    简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...

  9. IOS 解析XML文档

    前段时间想找点事做,就是试着看能不能用豆瓣的API做点什么,于是就碰到了这个问题——XML解析. 老师还没讲,只能自己去查. XML文档解析主要有SAX和DOM两种模式,IOS上两种模式都可以用,这里 ...

随机推荐

  1. drupal中安装CKEditor文本编辑器,并配置图片上传功能

    一.下载: 1.CKEditor模块 2.IMCE模块 二.安装       1.复制: 下载完上面两个模块之后,解压,将解压后整个文件夹,复制粘贴,放到 sites\all\modules下面,个人 ...

  2. 第二十天File类、字节流

    File类.字节流 File类 File类介绍 File:它是描述持久设备上的文件或文件夹的.只要是在Java程序中操作文件或文件夹肯定需要使用File类完成. File类构造方法 /* * File ...

  3. Linux下编译C代码,出现tan函数报错的情况

    undefined reference to `tan' 但是已经包含了头文件 <math.h>了,可还是报错,说是找不到tan 这个问题的原因不是很清楚, 但是网上给出的方案,就是编译的 ...

  4. /usr 的由来及/usr目录结

    /usr 的由来及/usr目录结构   本文转自Delectat.com讨论中,大部分观点认为: usr 是 unix system resources 的缩写: usr 是 user 的缩写: us ...

  5. hdu_5221_Occupation(树剖)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5221 题意:给你一棵树,每个节点有一定的值,有三种操作: 1 x y 表示占领树上x-y的所有节点,2 ...

  6. JqGrid动态改变列名

    setLabel colname, data, class, properties jqGrid对象 给指定列设置一个新的显示名称.colname:列名称,也可以是列的位置索引,从0开始:data:列 ...

  7. PHP: 异常exception

    异常最常见于SDK调用中,函数执行失败时抛出异常,顺带错误码和错误信息. 先来看下PHP的异常处理相关函数: public Exception::__construct() ([ string $me ...

  8. 把aspx页面输出成xml的方法注意事项

    先贴代码 Response.Charset = "gb2312"; Response.ContentType = "text/xml"; Response.Co ...

  9. Ubuntu 下安装 nfs

    1先安装sudo apt-get install nfs-kernel-server(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap) 分开看就是1.服 ...

  10. Thinkphp中使用Redis

    先确保安装了redis扩展 添加Redis配置 'REDIS_HOST'=>'192.168.0.2', 'REDIS_PORT'=>6379, 其他配置根据自己ThinkPHP版本,找到 ...