Xerces DOMDocument C++ Parser を使用して HTML をロードし、特定の HTML 要素を検索しようとしています。これを達成する方法の良い例を見つけるのに苦労しています。私が見つけたように見えるのは、XMLの解析だけです。誰か助けてくれませんか?ありがとう。
質問する
993 次
1 に答える
1
これを見てください:http://xerces.apache.org/xerces-c/program-dom-3.html
DOMDocument の例もあります。
// // 小さなドキュメント ツリーを作成します //
{
XMLCh tempStr[100];
XMLString::transcode("Range", tempStr, 99);
DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(tempStr, 0);
XMLString::transcode("root", tempStr, 99);
DOMDocument* doc = impl->createDocument(0, tempStr, 0);
DOMElement* root = doc->getDocumentElement();
XMLString::transcode("FirstElement", tempStr, 99);
DOMElement* e1 = doc->createElement(tempStr);
root->appendChild(e1);
XMLString::transcode("SecondElement", tempStr, 99);
DOMElement* e2 = doc->createElement(tempStr);
root->appendChild(e2);
XMLString::transcode("aTextNode", tempStr, 99);
DOMText* textNode = doc->createTextNode(tempStr);
e1->appendChild(textNode);
// optionally, call release() to release the resource associated with the range after done
DOMRange* range = doc->createRange();
range->release();
// removedElement is an orphaned node, optionally call release() to release associated resource
DOMElement* removedElement = root->removeChild(e2);
removedElement->release();
// no need to release this returned object which is owned by implementation
XMLString::transcode("*", tempStr, 99);
DOMNodeList* nodeList = doc->getElementsByTagName(tempStr);
// done with the document, must call release() to release the entire document resources
doc->release();
};
...そしてとても長い。
編集:
しかし、HTML を DOMDocument にロードして、html 要素を検索するにはどうすればよいでしょうか。それが私が理解しようとしているものです。
XercesDOMParser パーサー。
parser.loadGrammar("grammar.dtd", Grammar::DTDGrammarType);
parser.setValidationScheme(XercesDOMParser::Val_Always);
ハンドラー ハンドラー。
parser.setErrorHandler( &handler );
parser.parse("xmlfile.xml");
于 2013-01-21T15:07:48.197 に答える