Scala XML解析库

XML 解析

Scala标准库中内置了XML支持,XML相关类在包scala.xml中。

XML节点类型

Node是最基础的XML节点类型(抽象类)。
Node类型是NodeSeq的子类,而NodeSeq继承自Seq[Node],用于记录节点的序列。
Node类型定义了一系列用于获取节点信息的方法:

  • prefix成员方法,用于获取当前节点的标签前缀
  • child成员方法(抽象方法),用于获取子节点序列
  • attributes成员方法,用于获取当前节点属性
  • label成员方法(抽象方法),用于获取当前节点标签名称
  • text成员方法,用于获取当前节点文本内容

如下所示:

def prefix: String = null
def child: Seq[Node]
def attributes: MetaData = Null
def label: String
override def text: String = super.text

Node类型的伴生对象中定义了提取器,可以用于提取节点中的标签名称属性子节点等内容:

def unapplySeq(n: Node) = Some((n.label, n.attributes, n.child))

Elem类型继承于Node类型,实现了Node类型中的抽象内容。
有如下测试XML文件:

<!-- FileName: Example.xml -->
<root>
    <node arg="arg_node">
        <node1 arg="arg_node1">node1</node1>
        <node1 argOne="node1_arg_one" argTwo="node1_arg_two">test_node1</node1>
    </
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值