在.net framework中轻松处理xml数据(1-3)

  • 作者:未知 来源:未知 添加时间:2006年7月3日 字体:

  • 每个节点的类型是xmlnodetype枚举中的一种,在如图三所示的代码中,我们只用了其中的两种类型:element 和 endelement。输出源码重新定制了原始的文档结构,它丢弃或者说是忽略了xml元素的属性和节点内容,只输出了元素节点名。假设我们运用了下面的xml片断:

    <mags>
    <mag name="msdn magazine">
    msdn magazine
    </mag>
    <mag name="msdn voices">
    msdn voices
    </mag>
    </mags>
    用上面的程序输出的结果如下:

    <mags>
    <mag>
    </mag>
    <mag>
    </mag>
    </mags>

    子节点的缩进量是根据阅读器的深度属性(depth属性)设置的,depth属性返回一个整形的数据,它表示当前节点的嵌套层次。所有文本都放在stringwriter对象中(一个非常方便的基于流的封装了strigbuilder类的类)。

    如前所述,阅读器不会自动通过read方法访问属性节点。要访问当前元素的属性节点集合,必须用一个简单的用movetonextattribute方法的返回值控制的循环去遍历该集合。下面的代码用于访问当前节点的所有属性,并把属性的名称和它的值用逗号分开组合成一个字符串:
    if (reader.hasattributes)
    while(reader.movetonextattribute())
    buf += reader.name + "=\"" + reader.&#118alue + "\",";
    reader.movetoelement();

    当你完成对属性集的处理时,调用movetoelement方法使指针返回到属性所属的元素节点。准确的说,movetoelement方法并不是真正的移动指针,因为在处理属性集时指针从来就没有从元素节点中移开。movetoelement方法只不过指向某个内部成员,并依次取得成员的值。例如,用name属性获得某个属性的属性名,然后调用movetoelement方法把指针移到其所属的元素节点处。但是当你不需要继续处理别的节点时,就不必再调用movetoelement方法了。

  • 上一篇:在.net framework中轻松处理xml数据(2-1)
  • 下一篇:在.net framework中轻松处理xml数据(1-2)
  • 最后更新时间:2024年12月22日
  • 返回页面顶端
ppdesk