2011-03-28 5 views
-1

안녕 모두 여기에, 난 그냥 내가 어떤을 따르고 C++에서 코드를 작성 을 MyName로 해당C++ XML 파일을 구문 분석 문제

이름 같은 개체 값을 변경하려면 내가 XML 파일을 parsr하려는 내 문제입니다 내 아웃시

#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; 
} 

는 난 그냥 해달라고 주소는 지금 무엇을 해야할지 보았다 넣어? 이 주소를 어떻게 사용합니까? 내가 뭘 가리키고 있니? 난 그냥

이 사람이 어떻게 이렇게 말해 줄 수있는이 파일에서 "MyName로"로 "이름"을 변경할

<?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> 

을 따르고 내 xml 파일을 파일을 XML의 매개 변수를 변경하려면 어떻게해야 ?

답변

0

정말 그렇게하고 싶다면 두 가지 검색과 문자열 교체 만하면됩니다. 예를 들어 ""태그를 사용하여 ""태그를 검색하십시오. std::string::find. 그런 다음 다음 ""및 ""태그의 위치를 ​​검색하십시오. 그런 다음 std::string::replace을 사용하십시오.

위의 코드는 : previous answer에 나와있는 것처럼 SAX를 사용하여 xml 문서를 수정할 수 없습니다. 실제로 코드에서 특정 XML 문서의 핸들러를 정의하지도 않으므로 어떻게 작동 할 것으로 예상합니까? 나는 앉아서 예제의 색소 파서 예제를 이해하려고 노력할 것을 제안한다.