大家好,这里是我的问题我想解析一个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;
}
在我的外面,我刚看到一个地址,我不知道该怎么办?如何使用这个地址?我指的是什么?我该怎么做才能更改我的xml文件遵循的xml文件的参数
<?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>
我只想在此文件中将“name”更改为“myname”
谁能告诉我怎么做?
答案 0 :(得分:0)
如果您真的想做什么,为什么不进行一些搜索和字符串替换:使用例如搜索“”标签std::string::find。然后搜索下一个“”和“”标签的位置。然后你可以,例如使用std::string::replace。
WRT上面的代码:正如我在previous answer中概述的那样,你不能使用SAX来修改xml文档。事实上,在您的代码中,您甚至没有为特定的xml文档定义处理程序,那么您希望它如何工作?我建议你坐下来尝试理解示例中的sax解析器示例。