zoukankan      html  css  js  c++  java
  • 关于libXml的读取

    图XML

     

    输出XML_TEXT_NODE 图


    不输出XML_TEXT_NODE


    这样的一个xml,竟然会读到text这种节点,两种节点类型XML_TEXT_NODE和XML_ELEMENT_NODE

    XML_TEXT_NODE的名称读到默认就是text,XML_ELEMENT_NODE节点的名称是自己起好的名字,

    感觉和之前使用过的tinyXml不太一样,tinyXml每次都到的都是XML_ELEMENT_NODE,不会凭空读到

    XML_TEXT_NODE这种节点,至少让我分析的时候产生一些困惑。

    #defineXML_VAR_NODE_STR "StatusCode"

    bool ReadStatusXml::loadXmlFile(const char * xmlFIle)

    {

    xmlDocPtrxmlDoc;

    xmlNodePtrxnRootNode, xnVariable, xnStatusCode;

    xmlDoc = ::xmlParseFile(xmlFIle);

    if (! xmlDoc)

    {

    printf("error");

    return false;

    }

    xnRootNode = ::xmlDocGetRootElement(xmlDoc);

        printf("%s\n", xnRootNode->name);

    if (! xnRootNode)

    {

    ::xmlFreeDoc(xmlDoc);

    return false;

    }

    xnVariable = xnRootNode->xmlChildrenNode;

    if (! xnVariable)

    {

    ::xmlFreeDoc(xmlDoc);

    return false;

    }

    while(xnVariable)

    {

    if (!xmlStrcmp(xnVariable->name, BAD_CAST XML_VAR_NODE_STR)) //通过节点名称来过滤XML_TEXT_NODE

    //if(xnVariable->type == XML_ELEMENT_NODE) //通过类型来过滤XML_TEXT_NODE

    {

    printf("  %s\n", xnVariable->name);

    LoadXmlStatusCode(xnVariable);

    }

    xnVariable = xnVariable->next;

    }

    xmlFreeDoc(xmlDoc);

    return true;

    }

  • 相关阅读:
    所有选择器
    display:block、display:inline与displayinline:block的概念和区别
    jQuery 选择器
    JS日历制作获取时间
    HTML DOM 事件
    访问HTML元素(节点)
    HTML常用标签
    flask+mysql的Docker 部署
    docker(三)
    flask如何部署
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454959.html
Copyright © 2011-2022 走看看