xerces dom xml解析
http://xerces.apache.org/xerces-c/program-dom-3.html#UsingDOMAPI有三种解析器:XercesDOMParser,DOMLSParser,DOMLSSerializer。举例:1:XMLPlatformUtils::Initialize();XERCES_CPP_NAMESPACE_QUALIFIER DO
http://xerces.apache.org/xerces-c/program-dom-3.html#UsingDOMAPI
有三种解析器:XercesDOMParser,DOMLSParser,DOMLSSerializer。
三个有用的类:
DOMDocument* myDocument; DOMNode* aNode; DOMText* someText;
举例:
XMLPlatformUtils::Initialize();
parser = new XercesDOMParser();
parser->setValidationScheme( XercesDOMParser::Val_Always );
parser->setDoNamespaces( true ); // optional
设置错误处理
ErrorHandler* err_Handler = (ErrorHandler*) new HandlerBase();
parser->setErrorHandler( err_Handler );
// reset document pool
parser->resetDocumentPool();
解析方式:
- parser->parse(xml_file); // std::string xml_file_name;
- MemBufInputSource myxml_buf((const XMLByte*)xmlbuf,strlen(xmlbuf), "test"); parser->parse(myxml_buf);
解析结果:
XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc = 0;
doc = parser->getDocument();
DOMNode* root = (DOMNode*) doc->getDocumentElement();
{
if (child->getNodeType() != DOMNode::ELEMENT_NODE) ............
DOMNode *node = pAttributes->getNamedItem(attrDef); ----------------- 根据属性名取出属性
XMLString::release((XMLCh**) (&attrDef)); ---------------- 记得和XMLString::transcode配对使用,否则内存泄露。
更多推荐
所有评论(0)