如何解决如何检查xml文件中的行是否具有特定标签以及是否在c中的标签中找到保存值
所以我对 c 编程很陌生,想知道是否有一种方法可以逐行读取 xml 文件并在找到时保存标记之间的值。
到目前为止,我已经创建了以下程序。
#include <stdio.h>
int main () {
char line [150];
FILE *file = fopen("testfile.xml","r");
if (file == NULL) {
fprintf(stdout,"Unable to open file.\n");
exit(1);
}
while(fgets(ln,sizeof(ln),file)) {
fprintf(stdout,"%s\n",ln);
}
return (0);
}
这是我的 xml 文件外观的示例。多个标签可以在同一行。
<Details>
<firstname>Steve</firstname>
<surname>Barrat</surname>
<age>20</age>
<info><addr>23 Boxwell road</addr><hobby>Football</hobby></info>
</Details>
是否有任何方法可以检查读取的行中是否存在例如 <addr>
标记以及是否
因此,将该标签内容中的值保存到变量中。
任何帮助都会很棒。
解决方法
您不想逐行读取 XML 文件,因为换行可能发生在任何地方,例如您的文件可能被格式化为
<Details><firstname
>Steve</firstname><surname>Barrat</surname
><age>20</age><info><addr>23 Boxwell road</addr><hobby>Football</hobby></info>
</Details>
并且您仍然有望成功阅读它。您应该逐个元素而不是逐行阅读它,您使用的工具是 XML 解析器。
恐怕我跟不上从 C 解析 XML 的最新技术,除了大多数人使用 libxml 的事实;更现代的语言(例如 Java 和 C#)可以得到更好的服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。