qt下使用QXmlStreamReader读取xml/html信息

2025-11-10 22:50:40

1、bool QXmlStreamReader::atEnd() const

判断xml数据是否结束

2、TokenType QXmlStreamReader::readNext()

读取下一个标识,返回类型TokenType表示该标识的类型

对于示例:<tag>tagTxt</tag>

第一个标识为<tag>,其标识类型为QXmlStreamReader::StartElement

第二个标识为tagTxt,其标识类型为QXmlStreamReader::Characters

第三个标识为</tag>,其标识类型为QXmlStreamReader::EndElement

本文还用到了QXmlStreamReader::StartDocument、QXmlStreamReader::EndDocument、QXmlStreamReader::Characters

3、QStringRef QXmlStreamReader::name() const

返回标签的名字,<tag>和</tag>返回的名字都是tag

4、TokenType QXmlStreamReader::tokenType() const

返回当前标签的类型

5、QStringRef QXmlStreamReader::text() const

对于示例:<tag>tagTxt</tag>可以获取tagTxt信息

6、QString QXmlStreamReader::errorString() const

出错时用来获取错误信息

1、有一个xml格式的字符串,该字符串定义了打印信息的行数、每行的字体(大、中、小)、样式(居左、居中、居右)。<br/>表示换行,紧接着的<br/>表示空行

<xmlInfo>

  <center>

    <L>large txt</L>

  </center>

  <br/>

  <br/>

  <left>

    <S>small txt</S>

  </left>

  <br/>

  <right>

    <M>middle txt</M>

  </right>

  <br/>

</xmlInfo>

2、解析打印xml字符串,并保存到打印结构体中

1、原理:

(1)找到xmlInfo开始元素

(2)依次读取每一条打印信息,<center>...</center>包含的就是一条打印信息,<br/>也是一条打印信息

  【2.1】读取开始元素、结束元素,确保它们成对出现

  【2.2】根据标签名设置打印信息

  【2.3】判断标签名是否出现在指定的层级上,确保xml格式正确

  【2.4】最后一层读取打印字符信息

(3)添加打印信息到打印信息列表中

  【3.1】如果是普通打印信息,直接添加

  【3.2】如果是空行,第一个空行为换行符,后续的空行需要增加打印一个空字符

2、字体和样式枚举定义

qt下使用QXmlStreamReader读取xml/html信息

3、定义单行打印信息结构体

qt下使用QXmlStreamReader读取xml/html信息

4、设置层级信息信息全局变量,并赋值

qt下使用QXmlStreamReader读取xml/html信息

5、读取xml字符串

qt下使用QXmlStreamReader读取xml/html信息

6、根据标签名,设置打印字符、样式函数

qt下使用QXmlStreamReader读取xml/html信息

7、递归获取每一行打印信息函数

qt下使用QXmlStreamReader读取xml/html信息

qt下使用QXmlStreamReader读取xml/html信息

8、读取xmlInfo节点,然后顺序获取每一行打印信息

根据打印信息是否为<br>,进行不同的处理

qt下使用QXmlStreamReader读取xml/html信息

qt下使用QXmlStreamReader读取xml/html信息

9、运行结果

qt下使用QXmlStreamReader读取xml/html信息

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢