青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

網(wǎng)絡(luò)服務(wù)器軟件開發(fā)/中間件開發(fā),關(guān)注ACE/ICE/boost

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks

Xerces C++ 學(xué)習(xí)筆記

Xerces C++ 學(xué)習(xí)筆記

1. ? 初始化平臺:

XMLPlatformUtils::Initialze()

2. ? 銷毀平臺:

XMLPlatformUtils::Terminate();

3. ? 加載分析報文

XercesDOMParser? *parser = new XercesDOMParser();

Parser->parse( 參數(shù) ); 這個參數(shù)可以直接是文件名,也可以是內(nèi)存的數(shù)據(jù),具體的查看 API

4. ? 數(shù)據(jù)格式轉(zhuǎn)換

XMLString.transcode() 這個方法有多個重載,既可以把 XMLCh * 格式的數(shù)據(jù)轉(zhuǎn)換成 char * 的數(shù)據(jù),也可以把 char * 的數(shù)據(jù)轉(zhuǎn)換成 XMLCh *, 我們也可以利用這個函數(shù)來初始化 XMLCh 格式類型的數(shù)組,比如 XMLCh temp[100];

??????????????????????????? XMLString.transcode(“LS”,temp,99);// 用“ LS ”初始化 temp 這個數(shù)組的內(nèi)容。

5. ? 分析報文后,如何得到文檔的樹型結(jié)構(gòu)

DOMDocument *xmlDoc = parser->getDocument();

6. ? 得到樹型結(jié)構(gòu)后,如何得到第一個根節(jié)點

DOMElement *root = xmlDoc->getDocumentElement();

7. ? 如何遍歷文檔的結(jié)構(gòu)

遍歷一個樹型的文檔結(jié)構(gòu)有三種方法。

1 .使用 DOMNodeIterator

DOMNodeIterator *iterator = xmlDoc->createNodeIterator(root, DOMNodeFilter::SHOW_TEXT,? NULL, true);

for ( DOMNode * current = (DOMNode *)iterator->nextNode(); current != 0; current = (DOMNode *)iterator->nextNode() )

{

??????? string strValue = XMLString::transcode(current->getNodeValue());

??????? std::cout <<strValue<<endl;

?}// 以上就可以把 xml 文檔中的屬性為 NODETEXT 節(jié)點的內(nèi)容給打印出來。

2 .使用 DOMTreeWalker

D OMTreeWalker *walker =??xmlDoc->createTreeWalker(root, DOMNodeFilter::SHOW_TEXT, NULL, true);

f or (DOMNode *current = walker->nextNode(); current != 0; current = walker->nextNode() )? ?

?{

? ?? ?char *strValue = XMLString::transcode( current->getNodeValue() );? ? ?std::cout <<strValue;
? ?? ?? ?? ?XMLString::release(&strValue);? ?

}

3 .使用子節(jié)點直接遍歷樹型結(jié)構(gòu)

?? DOMNode *n = (DOMNode*)xmlDoc->getDocumentElement();

// 下面開始遍歷這個樹的結(jié)構(gòu)

if(n)

{

??????? if (n->getNodeType() == DOMNode::ELEMENT_NODE)

??????? {

?????????????? ?DOMNodeList* nodeList = n->getChildNodes();

?????????????? ?unsigned int nListLen = nodeList->getLength();

?????????????? ?for (unsigned int i=0; i<nListLen; ++i)

?????????????? ?{

????????????????????? DOMNode* nodeTemp = nodeList->item(i);

????????????????????? if (nodeTemp->getNodeType() == DOMNode::ELEMENT_NODE)

????????????????????? {

???????????????????????????? for (DOMNode* node1=nodeTemp->getFirstChild(); node1!=0; node1=node1->getNextSibling())

???????????????????????????? {

??????????????????????????????????? char* name = XMLString::transcode(node1->getNodeName());

??????????????????????????????????? string strTemp = name;

??????????????????????????????????? if (strTemp == "name")?? // 這個就是跟 xml 文檔中 name 節(jié)點匹配

??????????????????????????????????? {

??????? char* myname=XMLString::transcode(node1->getFirstChild()->getNodeValue());

?????????????????????????????????????????? cout<<myname<<endl;

??????????????????????????????????? }

???????????????????????????? }

????????????????????? }

????????????????????? continue;

?????????????? }

??????? }

}

8. ? 如何添加子節(jié)點。

??? //Add new (empty) Element to the root element
???? DOM_Element parentNode = …;// parent is known
???? DOM_Element prodElem = doc->createElement (tagName);
???? parentNode->appendChild (prodElem);

9. ? 在加載 xml 文件分析前,有兩種加載方式:一種直接通過文件加載,一種是通過內(nèi)存加載

1. ? String xmlfile = “a.xml”;

Parser->parse(xmlfile.c_str());

??????? 2.MemBufInputSource ? 這個類處理內(nèi)存的數(shù)據(jù),然后利用 parser->parse(*men)//men MemBufInputSource ? 的實例指針對象。

?

10. ????????????? 在加載分析報文前,可以設(shè)置 XercesDOMParser 的一些屬性。

??????? P arser->setValidationScheme( XercesDOMParser::Val_Auto );
? ??? ????Parser->setDoNamespaces( false );
? ? ?????Parser->setDoSchema( false );
? ? ?????Parser->setLoadExternalDTD( false );

??????? // 這個部分的代碼可以參照類庫自帶的例子。

11. ????????????? 我們也可以設(shè)置錯誤的處理代碼。

??????? 這部分可以查看類庫下的 DOMPrint 例子。 DOMError ,DOMErrorHandler

12. ????????????? 也可以設(shè)置分析過濾的屬性

???????? DOMNodeFilter? 這個類能起到這個效果

13. ????????????? 要美化文檔的格式化輸出,我們可以使用

??????? XMLFormatter??? XMLFormatTarget? , 用的時候可以查看。

14????? 我們也可以通過 DOMImplementationLs , DOMImplementation 前者是后者的基類。通過這個類我們可以創(chuàng)建 DOMBuilder parser )或 DOMWriter (序列,既可以寫到屏幕,也可以寫到文件)

posted on 2007-03-15 15:54 true 閱讀(4801) 評論(4)  編輯 收藏 引用 所屬分類: 其它開源庫

Feedback

# re: Xerces C++ 學(xué)習(xí)筆記[轉(zhuǎn)] 2008-03-20 11:02 o
good!  回復(fù)  更多評論
  

# re: Xerces C++ 學(xué)習(xí)筆記[轉(zhuǎn)] 2009-05-22 14:02
Excellent!~  回復(fù)  更多評論
  

# re: Xerces C++ 學(xué)習(xí)筆記[轉(zhuǎn)] 2009-06-18 21:18 zhu
LZ還有沒啊  回復(fù)  更多評論
  

# re: Xerces C++ 學(xué)習(xí)筆記[轉(zhuǎn)] 2009-06-18 21:18 zhu
我的QQ 61975993
LZ加我呀  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线综合视频| 欧美成人精品三级在线观看| 中文一区在线| 亚洲私人影院| 国产精品大片免费观看| 亚洲欧美日本日韩| 久久夜色精品国产| 最新亚洲激情| 国产精品理论片| 久久精品国产精品| 亚洲国产精品ⅴa在线观看 | 亚洲欧美日韩精品一区二区| 亚洲性色视频| 欧美日韩精品欧美日韩精品一 | 激情成人中文字幕| 欧美岛国激情| 制服诱惑一区二区| 欧美成人一区二区在线| 亚洲乱码精品一二三四区日韩在线 | 国产精品theporn| 欧美一区二区三区视频在线观看| 欧美成人国产一区二区| 亚洲午夜激情网站| 亚洲国产毛片完整版| 国产精品国产三级国产普通话99| 欧美在线精品一区| 一区二区动漫| 亚洲第一色中文字幕| 久久国产精品久久久久久久久久 | 99热免费精品在线观看| 激情国产一区二区| 国产精品乱人伦中文| 久久久久久一区| 亚洲午夜精品久久| 国内外成人免费激情在线视频| 欧美日韩和欧美的一区二区| 欧美一区激情| 亚洲图片自拍偷拍| 亚洲人在线视频| 欧美 日韩 国产一区二区在线视频 | 久久久久久免费| 亚洲免费人成在线视频观看| 亚洲日韩第九十九页| 欧美大片一区二区三区| 久久亚洲美女| 欧美在线看片| 欧美一区二区视频观看视频| 亚洲图片自拍偷拍| 一区二区电影免费观看| 亚洲精品免费在线| 亚洲三级网站| 日韩网站在线观看| 亚洲精品一区二区三区樱花| 在线观看一区欧美| 国产综合香蕉五月婷在线| 国产精品美腿一区在线看| 国产精品av免费在线观看| 欧美日韩免费一区二区三区视频| 欧美日韩岛国| 欧美婷婷久久| 国产精品视频导航| 国产性色一区二区| 亚洲高清影视| 亚洲美女在线一区| 国产精品99久久不卡二区| 一区二区免费在线观看| 一本不卡影院| 亚洲综合社区| 久久国产精品一区二区三区| 久久精品国产成人| 另类春色校园亚洲| 亚洲成色777777女色窝| 一二三四社区欧美黄| 亚洲激情不卡| aa级大片欧美三级| 亚洲一级在线观看| 欧美怡红院视频| 欧美成人日韩| 欧美日韩一区二区在线观看视频| 国产精品麻豆成人av电影艾秋 | 国产视频在线观看一区二区三区| 黄色成人在线免费| 亚洲精品免费网站| 欧美日韩国产成人在线免费 | 国产无一区二区| 亚洲大胆美女视频| 亚洲午夜在线观看视频在线| 久久国产精品电影| 亚洲激情一区二区三区| 亚洲一区中文字幕在线观看| 久久久久免费观看| 欧美日韩亚洲一区二区三区| 国产日韩在线不卡| 日韩视频免费大全中文字幕| 西瓜成人精品人成网站| 欧美国产日韩一区| 亚洲影视九九影院在线观看| 猛干欧美女孩| 国产一区二区三区高清| 99爱精品视频| 久久综合久久88| 亚洲一区二区精品在线| 欧美3dxxxxhd| 黄色综合网站| 午夜精品一区二区三区在线| 亚洲国产综合91精品麻豆| 欧美在线观看www| 欧美日精品一区视频| 亚洲黑丝在线| 久久久久久伊人| 亚洲欧美日本日韩| 欧美色精品天天在线观看视频| 激情视频一区二区| 亚洲欧美在线另类| 亚洲精品久久久久久久久久久久| 久久免费高清视频| 国内精品视频在线观看| 性感少妇一区| 99成人免费视频| 欧美精品一区二区三区久久久竹菊 | 老司机一区二区| 国产一区二区三区四区| 欧美一区二区三区四区在线观看| 99re66热这里只有精品3直播| 欧美大片第1页| 亚洲国产精品第一区二区| 久久久久久久久久看片| 欧美亚洲视频| 激情亚洲网站| 久久亚洲图片| 久久在线视频| 91久久国产综合久久| 欧美激情视频免费观看| 久久久91精品国产| 激情视频亚洲| 激情小说另类小说亚洲欧美| 久久久亚洲高清| 久久久国产成人精品| 在线播放豆国产99亚洲| 麻豆成人在线播放| 牛人盗摄一区二区三区视频| 亚洲区在线播放| 亚洲精选91| 国产精品午夜久久| 久久美女性网| 欧美成人免费大片| 亚洲午夜电影网| 香蕉久久夜色精品国产| 影音先锋国产精品| 亚洲精品男同| 国产精品亚洲成人| 久久综合国产精品| 欧美精品久久一区二区| 亚洲午夜一区| 久久爱www久久做| 亚洲国产精品免费| 这里只有精品视频| 狠狠色丁香久久婷婷综合_中| 另类图片国产| 欧美日韩一区在线播放| 久久久99国产精品免费| 欧美jizzhd精品欧美巨大免费| 亚洲一区不卡| 欧美不卡三区| 久久久久久久久久久一区| 一区精品久久| 亚洲精品一区二区三区樱花 | 在线高清一区| 亚洲黄色大片| 国产精品久久久久久久久果冻传媒| 欧美亚洲免费电影| 免费观看日韩| 亚洲欧美综合| 欧美激情一区二区三区在线视频观看 | 国产精品欧美一区二区三区奶水 | 免费欧美高清视频| 亚洲精品一区二区三区在线观看 | 亚洲欧美在线视频观看| 日韩视频一区二区在线观看 | 亚洲色图在线视频| 欧美激情综合色| 蜜桃av一区二区| 国产在线日韩| 农村妇女精品| 欧美日韩国产另类不卡| 99ri日韩精品视频| 最新亚洲激情| 免费久久99精品国产自| 亚洲国产老妈| 在线亚洲欧美专区二区| 欧美精品v日韩精品v韩国精品v | 在线免费高清一区二区三区| 久久婷婷激情| 欧美在线网址| 国产一区二区三区日韩欧美| 亚洲三级观看| 欧美激情网站在线观看| 亚洲午夜精品国产| 欧美一区二区三区四区在线观看地址 | 一本久久综合亚洲鲁鲁五月天|