MsXml´´½¨ºÍ½âÎöXMLʾÀý
Ò»£®MsXml´´½¨XMLÎĵµÊ¾Àý
// XmlCreationDemo.cpp
#include <stdlib.h>
#include <stdio.h>
// ÒýÈëMSXML½âÎöÆ÷
#import <msxml4.dll>
using namespace MSXML2;
class InitializeCom
{
public:
InitializeCom() { CoInitialize(NULL); // Initializes the COM library }
~InitializeCom() { CoUninitialize(); // Closes the COM library }
}InitCom;
int main()
{
char *szXmlFile = "D:\\china.xml"; // xmlÎļþ
IXMLDOMDocumentPtr pDoc = NULL; // xmlÎĵµ
IXMLDOMProcessingInstructionPtr pProInstruction = NULL; // xmlÉùÃ÷
IXMLDOMCommentPtr pComment = NULL; // ×¢ÊÍ
IXMLDOMElementPtr pRootElement = NULL, pElement = NULL; // ¸ù½Úµã(ÔªËØ)
IXMLDOMNodePtr pNode = NULL, pNode1 = NULL, pNode2 = NULL; // ½Úµã
IXMLDOMAttributePtr pAttrNode = NULL; // ÊôÐÔ
HRESULT hr = pDoc.CreateInstance(__uuidof(DOMDocument40)); //
if (FAILED(hr))
{
printf("ÎÞ·¨´´½¨DOMDocument40¶ÔÏó£¬Çë¼ì²éÊÇ·ñ°²×°²¢³õʼ»¯ÁËMsXml Parser¿â£¡");
return EXIT_FAILURE;
}
// (1)´´½¨xmlÎĵµÉùÃ÷(»òinsertBefore¸ù½Úµã)
pProInstruction = pDoc->createProcessingInstruction((_bstr_t)(char*)"xml", (_bstr_t)(char*)"version=\"1.0\" encoding=\"utf-8\"");
pDoc->appendChild((IXMLDOMNode*)pProInstruction);
// (2)´´½¨¸ù½Úµã<China>
pRootElement = pDoc->createElement((_bstr_t)(char*)"China");
pDoc->PutRefdocumentElement(pRootElement); // pXMLDomDoc->documentElement = pRootElement;
// (3)´´½¨½Úµã<China><Continent>
pComment = pDoc->createComment((_bstr_t)(char*)"ËùÔÚµÄÖÞ");
pRootElement->appendChild((IXMLDOMNode*)pComment); // ×¢ÊÍ
pNode = pDoc->createNode((_variant_t)(long)NODE_ELEMENT, (_bstr_t)(char*)"Continent", (_bstr_t)(char*)"");
pNode->Puttext((_bstr_t)(char*)"Asia"); // pNode->text = "Asia";
pRootElement->appendChild(pNode); // ½Úµã
// (4)´´½¨½Úµã<China><Population>
pComment = pDoc->createComment((_bstr_t)(char*)"ÈË¿ÚÊýÁ¿");
pRootElement->appendChild((IXMLDOMNode*)pComment); // ×¢
Ïà¹ØÎĵµ£º
·¶ÀýÈçÏ£º
var xml:XML=
<body>
text1
<bar>barText1</bar>
& ......
3£©¶ÁÈ¡¡¢²éÕÒ
µ±ÄãÊÖÍ·ÓÐÒ»¸öxmlÎļþºó£¬¿ÉÒÔʹÓÃXmlDocument.Load()·½·¨½«Æä¼ÓÔØ½øÀ´ÒԱ㴦Àí£¬ËùÒÔ“¶ÁÈ¡”ûÓÐʲô¿É˵µÄ¡£¶ø“²éÕÒ”²Ù×÷ÍùÍùÉæ¼°XPath£¬ÕâÀïÖ»ÊÇÎÒÈÏΪµÄ±È½Ï³£Óõ½µÄ²éÕÒ²Ù×÷£¬XPathÕâÍæÒâʵÔÚÊǺÜÇ¿´óºÜ±©Á¦¡£
»ØÍ·¿´Ê¾ÀýÎĵµxmlsample.xml£¬ÎÒÃÇ¿ÉÄÜÓöµ½ÕâÑùµÄÐèÇó£ ......
ʹÓÃdom4j½âÎöXMLʱ£¬Òª¿ìËÙ»ñȡij¸ö½ÚµãµÄÊý¾Ý£¬Ê¹ÓÃXPathÊǸö²»´íµÄ·½·¨£¬dom4jµÄ¿ìËÙÊÖ²áÀïÒ²½¨ÒéʹÓÃÕâÖÖ·½Ê½£¬±êÌⶼдµÄÕâôÀ«Æø£ºPowerful Navigation with XPath£¬ºÇºÇ¡£
·½·¨ÊÇʹÓÃDocumentµÄselectNodes(String XPath)·½·¨£¬´úÂëд·¨£º
List l = doc.selectNodes("//COLS/COL1");
Ö´ÐÐʱȴÅ׳öÒÔÏÂÒì³££º
Exc ......
JavaÓëXMLÁªºÏ±à³ÌÖ®DOMƪ
DOM³õ²½
DOM
ÊÇDocument Object
ModelµÄËõд£¬¼´Îĵµ¶ÔÏóÄ£ÐÍ¡£Ç°ÃæËµ¹ý£¬XML½«Êý¾Ý×é֯Ϊһ¿ÅÊ÷£¬ËùÒÔDOM¾ÍÊǶÔÕâ¿ÅÊ÷µÄÒ»¸ö¶ÔÏóÃèÐð¡£Í¨Ë×µÄ˵£¬¾ÍÊÇͨ¹ý½âÎöXMLÎĵµ£¬Îª
XMLÎĵµÔÚÂß¼ÉϽ¨Á¢Ò»¸öÊ÷Ä£ÐÍ£¬Ê÷µÄ½ÚµãÊÇÒ»¸ö¸ö¶ÔÏó¡£ÎÒÃÇͨ¹ý´æÈ¡ÕâЩ¶ÔÏó¾ÍÄܹ»´æÈ¡XMLÎĵµµÄÄÚÈÝ¡£ ......
LSParserFilter---ÔØÈëÓë±£´æ
Ó¦ÓÃorg.w3c.dom ʵÏÖXMLµÄÔØÈëÓë±£´æÊµÀý
/**
* ʵÏÖDOM3µÄLS(Load & Save)¹¦ÄÜ
*
* @author S.Well
* @see org.w3c.dom.DOMErrorHandler
* @see org.w3c.dom.ls.LSParserFilter
*/
public class XML_LS implements DOMErrorHandler, LSParserFilter {
private static ......