【问题标题】:pugixml not loading filepugixml没有加载文件
【发布时间】:2025-12-23 21:10:11
【问题描述】:

我正在尝试加载“tree.xml”,它与 loadfile.cpp 位于同一目录中,其中也有 pugixml.cpp、pugixml.hpp、pugiconfig.hpp。

#include "pugixml.cpp"
#include <iostream>
using namespace std;

int main()
{
    pugi::xml_document doc;

    pugi::xml_parse_result result = doc.load_file("tree.xml");

    if (doc.load_file("file.xml")){
        cout << "success" << endl;
    }else{
        cout << "fail" << endl;
    }

    cout << "Load result: " << result.description() << ", mesh name: " << doc.child("mesh").attribute("name").value() << endl;
}

我得到了结果:

fail
Load result: No error, mesh name: 

我在这里关注手册: http://cdn.rawgit.com/zeux/pugixml/v1.4/docs/quickstart.html 在“加载文档”下。

tree.xml 文件如下所示:

<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="WEB">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

为什么没有加载文件?我不知道出了什么问题。

【问题讨论】:

    标签: xml pugixml


    【解决方案1】:

    没关系。我找到了解决方案。

    #include "pugixml.cpp"
    #include <iostream>
    using namespace std;
    
    int main()
    {
        pugi::xml_document doc;
    
        pugi::xml_parse_result result = doc.load_file("tree.xml");
    
        if (result)){  // CHANGE THIS LINE TO RESULT INSTEAD OF doc.load_file("tree.xml")
            cout << "success" << endl;
        }else{
            cout << "fail" << endl;
        }
    
        cout << "Load result: " << result.description() << ", mesh name: " << doc.child("mesh").attribute("name").value() << endl;
    }
    

    【讨论】:

    • 嗨,对我来说还是失败了。无法加载/读取文件。没有遇到问题。