使用 where() 函数的 rapidxml

rapidxml using the where() function

我如何使用 where() 函数?

    using namespace rapidxml;
    xml_document<> doc;
    std:string xmlfile = "test.xml";
    std::ifstream file ( xmlfile );
    std::stringstream buffer;
    buffer << file.rdbuf ( );
    file.close ( );
    std::string content ( buffer.str ( ) );

    try
    {
        doc.parse<0> ( &content [ 0 ] );
    }

    catch ( rapidxml::parse_error& e )
    {
        std::cout << "Parsing error: " << e.what ( ) << "\n";
        //const Ch* e.where ( );
    }

得到了 what() 但想从 where() 得到某种指标,就像最后一个破坏 xml?

的节点一样

要使用 RapidXml where() 方法,请尝试如下操作:

std::cout << e.where<char>();

因为 where returns 指向原始 XML 数据的指针,所以它是一个模板函数。您可以使用返回的指针和原始数据通过计算换行符来确定行和列的位置。