Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;XML文件解析问题_C++_Xml - Fatal编程技术网

C++ c++;XML文件解析问题

C++ c++;XML文件解析问题,c++,xml,C++,Xml,大家好,这是我的问题,我想解析一个xml文件,我只想更改这样的实体值 名字 以我的名义 我写了一个C++代码,它遵循 #include <string> #include <iostream> #include <sstream> #include <stdexcept> #include <list> #include <sys/types.h> #include <sys/stat.h> #include &

大家好,这是我的问题,我想解析一个xml文件,我只想更改这样的实体值

名字 以我的名义 我写了一个C++代码,它遵循

#include <string>
#include <iostream>
#include <sstream>
#include <stdexcept>
#include <list>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>
#include "/usr/local/include/xercesc/parsers/SAXParser.hpp"
#include "/usr/local/include/xercesc/sax/HandlerBase.hpp"
#include "/usr/local/include/xercesc/util/XMLString.hpp"

using namespace std;
using namespace xercesc;

int main (int argc, char* args[]) {
    XMLPlatformUtils::Initialize();
    char* xmlFile = "/home/manish/conf/mapred-site.xml";
    cout<<xmlFile ;
    SAXParser* parser = new SAXParser();
    parser->setDoNamespaces(true);    // optional

    DocumentHandler* docHandler = new HandlerBase();
    ErrorHandler* errHandler = (ErrorHandler*) docHandler;
    parser->setDocumentHandler(docHandler);
    parser->setErrorHandler(errHandler);

    parser->parse(xmlFile);
    cout<<parser->getRootGrammar();


    delete parser;
    delete docHandler;
    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#include“/usr/local/include/xercesc/parsers/SAXParser.hpp”
#include“/usr/local/include/xercesc/sax/HandlerBase.hpp”
#include“/usr/local/include/xercesc/util/XMLString.hpp”
使用名称空间std;
使用名称空间xercesc;
int main(int argc,char*args[]{
XMLPlatformUtils::Initialize();
char*xmlFile=“/home/manish/conf/mapred site.xml”;
CoutsedOcumenthandler(docHandler);
解析器->setErrorHandler(errHandler);
解析器->解析(xmlFile);

cout如果你真的只想这么做,为什么不做一些搜索和字符串替换:使用例如搜索“”标记,然后搜索下一个“”和“”标记的位置。然后你可以使用例如

编写上述代码:正如我在中所述,您不能使用SAX来修改xml文档。事实上,在您的代码中,您甚至没有为特定的xml文档定义处理程序,因此您希望它如何工作?我建议您坐下来试着理解示例中的SAX解析器示例

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>fs.default.name</name>
  <value> name</value>
  </property>

</configuration>