c - 读取 mini-XML 2.7 中的多行字段时出现问题

标签 c xml multiline

我正在使用 C 和 mini-XML 2.7,并阅读 XML 文档。一切都很好,除了我的 XML 有一个如下所示的部分:

<layer name="pattern1" width="100" height="40">
<data encoding="csv">
970,970,970,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,
1089,0,4,765,21,
0,1089,0,0,0,0,0,0,0,0,0,0,0,0,0
  </data>
 </layer>

我的代码完美地解析了这里的所有 XML。然后我尝试使用以下方法读取 CSV 值:

s = mxmlGetText(node, &has_space);

但紧接着,像这样的 printf() 语句

printf("s='%s'", s);

显示第一行。

970,970,970,0,0,0,0,0,0,0,

我想阅读第一行下面的行,但尝试再次使用 mxmlGetText() 但没有成功。所有行均通过使用 mxmlSaveFile() 显示。

如何获取所有行?提前致谢。

最佳答案

我找到了解决这个问题的方法。

1.-在调用 mxmlLoadFile() 时使用 MXML_OPAQUE_CALLBACK 而不是 MXML_TEXT_CALLBACK 加载 XML 文件。

2.-使用 mxmlGetOpaque() 代替 mxmlGetText()。

现在我的代码可以完美运行。

关于c - 读取 mini-XML 2.7 中的多行字段时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795666/

相关文章:

c# - 正则表达式 - 通过注意缺少字符串然后插入它来匹配多行 block

c - 减去数组中元素的差值

c# - 在 C# 项目 : Can we mix raw C and C# code (VS10) 的 C 部分

xml - 如何删除 SOAP::Lite 生成的 XML 中的 xsi 前缀?

java - Edittext - 如何只允许添加一个点?

java - 具有自动高度的多行 JTable 单元格 - 第一行超大

C 多行宏 : do/while(0) vs scope block

c - char 的结构数据对齐

c - 自 ubuntu 升级以来对 `dlopen' 的 undefined reference

xml - Delphi 不会解析外部 DTD 文件