• 6924阅读
  • 2回复

奇怪的QXmlStremReader 解析行为 [复制链接]

上一主题 下一主题
离线ericye
 
只看楼主 倒序阅读 楼主  发表于: 2008-05-01
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
各位好!
在学习Jasmin Blanchette书中XmlStreamReader例子时,碰到一个奇怪的问题。
<?xml version="1.0"?>
<bookindex>
    <entry term="sidebearings">
        <page>10</page>
        <page>34-35</page>
        <page>307-308</page>
    </entry>
    <entry term="subtraction">
        <entry term="of pictures">
            <page>115</page>
            <page>244</page>
        </entry>
        <entry term="of vectors">
            <page>9</page>
        </entry>
    </entry>
</bookindex>

我的问题是:解析过程中为什么出现很多"Characters" Tokens?
例如 "<page>307-308</page>"这一行,语句 readElementText()之后,Token 是"EndElement", 再 readNext() 后,读入的应该是"</entry>",Token 应该是 "EndElement", 但却是 "Characters",为什么?

谢谢帮忙解释。
以下是解析过程中产生的Token:
StartDocument
StartElement
Characters
StartElement
Characters
StartElement
EndElement
Characters
StartElement
EndElement
Characters
StartElement
EndElement
Characters
EndElement
Characters
StartElement
Characters
StartElement
Characters
StartElement
EndElement
Characters
StartElement
EndElement
Characters
EndElement
Characters
StartElement
Characters
StartElement
EndElement
Characters
EndElement
Characters
EndElement
Characters
EndElement
EndDocument
离线XChinux

只看该作者 1楼 发表于: 2008-05-01
XML内容中的换行,空格都会产生Characters Token,所以在处理读Characters 事件的时候,要判断和下当前的element name是什么,以决定是否读取Characters.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线ericye
只看该作者 2楼 发表于: 2008-05-01
谢谢 XC,明白了。^_^
快速回复
限100 字节
 
上一个 下一个