繁体   English   中英

libxml2解析问题:命名空间错误

[英]Parsing issue with libxml2: Namespace error

我在解析xml文件时遇到问题,libxml格式不正确,但已由应用程序所有者证明其有效。

我已经尝试将RFC阅读到XOP,但似乎与我的问题无关。 而且我不明白如何在我的代码中实现其他解决方案。

int main(int argc, char **argv) {

   char         *docname;
   xmlDocPtr    doc;
   xmlNodePtr   cur;
   xmlChar      *date;

   if (argc < 2) {
     printf("Commande: %s nom_du_fichier\n", argv[0]);
     return EXIT_FAILURE;
   }


   docname = argv[1];

   doc = xmlParseFile(docname);
   cur = xmlDocGetRootElement(doc);

   cur = cur->xmlChildrenNode;
   while (cur != NULL) {
       if ((!xmlStrcmp(cur->name, (const xmlChar *)"anpr"))) {
         date = xmlGetProp(cur, "date");
         printf("date: %s\n", date);
         xmlFree(date);
       }
       cur = cur->next;
   }
   xmlFreeDoc(doc);
   return EXIT_SUCCESS;
}

代码xml:

<msg><tag date="1556896362471" session="1702"><jpeg><xop:Include href="A"/></jpeg>/msg>

file.xml:1: namespace error : Namespace prefix xop on Include is not defined

这个标签没有用,但是我不能每次手动删除。

我在解析xml文件时遇到问题,libxml格式不正确,但已由应用程序所有者证明其有效。

如果XML文件与您的问题完全相同,则该应用程序的所有者是错误的。 任何符合标准的XML解析器都会在尝试解析该XML时遇到致命错误。

我已经尝试将RFC阅读到XOP,但似乎与我的问题无关。

您是正确的,XOP的详细信息与此较低级别的问题无关。

可能值得学习XML命名空间的基础知识,因此您可以更好地理解XML格式不正确的原因(特别是xmlns属性)。 https://www.w3schools.com/xml/xml_namespaces.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM