xml文件的token

本来要学习SLD文件,但是SLD文件就是一种xml文件

参考链接(原文写得超级清楚,推荐看原文。要是我能早点想起来去必应国际搜一下,何至于对着不知所云的老师代码和QT的API看那么久。另:这篇文章貌似是java的,不是C++. 不过不碍事,就那么个意思):
link.

我们用流(stream)的形式解析xml文件,:使用一个游标(cursor),通过游标可以获取游标所指向的东西,故通过用代码移动游标来实现对文件所需范围的遍历。

xml文件就是由很多个不同种token构成的;或者说,xml文件中的每个小单位都是一个token并且有自己所属的token类型, 例如(有几种目前看不懂先没列出来)见下:

TokenTypeDescription
STARTDOCRepresents the start of the XML. Always the first token.
ENDDOCRepresents the end of the XML. Always the last token.
STARTRepresents the start of an element.
ENDRepresents the end of an element. The END token has no value, but marks the element’s end.
TEXTRepresents text.

注意:

  • The document element itself is represented by a START token, not the STARTDOC token.
    xml文件中用一对<>括起来且括号里没有其他标点的东西一直到</>,是一个element;前面那个<>叫Start,后面那个</>叫End。
    Start其实是StartElement(而不是StartDocument);End其实是EndElement(而不是EndDocument)。QT没有用JAVA这种令人困惑的命名方式,QT中就是StartElement和EndElement,不错子不愧是我QT👍
  • The END token has no value, but marks the element’s end.

当解析xml文件时,我们关心的是现在游标所指向token的类型,即现在是读到了StartDocument还是Start还是End还是EndDocument等等呢?这时常采用如下2种方法:

  1. 用 xmlCursor. currentTokenType得到现在的token类型并与目标进行比对。常用switch语句,即:
大概示意。语法不对。
switch (currentTokenType){
case Start: xxxxx;
case End: xxxxx;
case StartDocument: xxxxx;
default xxxxx;
}
  1. 用配置的接口:isStart() isEnd() 这种东西返回的bool值判断

这些token类型可以用上述网站中的一张图表示,清晰明了:
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值