亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? deprecateddomcount.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
字號(hào):
/* * Copyright 1999-2001,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: DeprecatedDOMCount.cpp,v 1.8 2004/09/08 13:57:03 peiyongz Exp $ */// ---------------------------------------------------------------------------//  Includes// ---------------------------------------------------------------------------#include <xercesc/util/PlatformUtils.hpp>#include <xercesc/sax/SAXException.hpp>#include <xercesc/sax/SAXParseException.hpp>#include <xercesc/dom/deprecated/DOMParser.hpp>#include <xercesc/dom/deprecated/DOM_DOMException.hpp>#include "DeprecatedDOMCount.hpp"#include <string.h>#include <stdlib.h>#if defined(XERCES_NEW_IOSTREAMS)#include <fstream>#else#include <fstream.h>#endif#include <xercesc/util/OutOfMemoryException.hpp>// ---------------------------------------------------------------------------//  This is a simple program which invokes the DOMParser to build a DOM//  tree for the specified input file. It then walks the tree and counts//  the number of elements. The element count is then printed.// ---------------------------------------------------------------------------void usage(){    XERCES_STD_QUALIFIER cout << "\nUsage:\n"            "    DeprecatedDOMCount [options] <XML file | List file>\n\n"            "This program invokes the DOM parser, builds the DOM tree,\n"            "and then prints the number of elements found in each XML file.\n\n"            "Options:\n"            "    -l          Indicate the input file is a List File that has a list of xml files.\n"            "                Default to off (Input file is an XML file).\n"            "    -v=xxx      Validation scheme [always | never | auto*].\n"            "    -n          Enable namespace processing. Defaults to off.\n"            "    -s          Enable schema processing. Defaults to off.\n"            "    -f          Enable full schema constraint checking. Defaults to off.\n"		      "    -?          Show this help.\n\n"            "  * = Default if not provided explicitly.\n"         << XERCES_STD_QUALIFIER endl;}int main(int argC, char* argV[]){    // Initialize the XML4C system    try    {        XMLPlatformUtils::Initialize();    }    catch (const XMLException& toCatch)    {         XERCES_STD_QUALIFIER cerr << "Error during initialization! :\n"              << StrX(toCatch.getMessage()) << XERCES_STD_QUALIFIER endl;         return 1;    }    // Check command line and extract arguments.    if (argC < 2)    {        usage();        XMLPlatformUtils::Terminate();        return 1;    }    const char*              xmlFile = 0;    DOMParser::ValSchemes    valScheme = DOMParser::Val_Auto;    bool                     doNamespaces       = false;    bool                     doSchema           = false;    bool                     schemaFullChecking = false;    bool                     doList = false;    bool                     errorOccurred = false;    int argInd;    for (argInd = 1; argInd < argC; argInd++)    {        // Break out on first parm not starting with a dash        if (argV[argInd][0] != '-')            break;        // Watch for special case help request        if (!strcmp(argV[argInd], "-?"))        {            usage();            XMLPlatformUtils::Terminate();            return 2;        }         else if (!strncmp(argV[argInd], "-v=", 3)              ||  !strncmp(argV[argInd], "-V=", 3))        {            const char* const parm = &argV[argInd][3];            if (!strcmp(parm, "never"))                valScheme = DOMParser::Val_Never;            else if (!strcmp(parm, "auto"))                valScheme = DOMParser::Val_Auto;            else if (!strcmp(parm, "always"))                valScheme = DOMParser::Val_Always;            else            {                XERCES_STD_QUALIFIER cerr << "Unknown -v= value: " << parm << XERCES_STD_QUALIFIER endl;                return 2;            }        }         else if (!strcmp(argV[argInd], "-n")              ||  !strcmp(argV[argInd], "-N"))        {            doNamespaces = true;        }         else if (!strcmp(argV[argInd], "-s")              ||  !strcmp(argV[argInd], "-S"))        {            doSchema = true;        }         else if (!strcmp(argV[argInd], "-f")              ||  !strcmp(argV[argInd], "-F"))        {            schemaFullChecking = true;        }         else if (!strcmp(argV[argInd], "-l")              ||  !strcmp(argV[argInd], "-L"))        {            doList = true;        }         else if (!strcmp(argV[argInd], "-special:nel"))        {            // turning this on will lead to non-standard compliance behaviour            // it will recognize the unicode character 0x85 as new line character            // instead of regular character as specified in XML 1.0            // do not turn this on unless really necessary            XMLPlatformUtils::recognizeNEL(true);        }         else        {            XERCES_STD_QUALIFIER cerr << "Unknown option '" << argV[argInd]                 << "', ignoring it\n" << XERCES_STD_QUALIFIER endl;        }    }    //    //  There should be only one and only one parameter left, and that    //  should be the file name.    //    if (argInd != argC - 1)    {        usage();        return 1;    }    // Instantiate the DOM parser.    DOMParser* parser = new DOMParser;    parser->setValidationScheme(valScheme);    parser->setDoNamespaces(doNamespaces);    parser->setDoSchema(doSchema);    parser->setValidationSchemaFullChecking(schemaFullChecking);    // And create our error handler and install it    DeprecatedDOMCountErrorHandler errorHandler;    parser->setErrorHandler(&errorHandler);    //    //  Get the starting time and kick off the parse of the indicated    //  file. Catch any exceptions that might propogate out of it.    //    unsigned long duration;    bool more = true;    XERCES_STD_QUALIFIER ifstream fin;    // the input is a list file    if (doList)        fin.open(argV[argInd]);    if (fin.fail()) {        XERCES_STD_QUALIFIER cerr <<"Cannot open the list file: " << argV[argInd] << XERCES_STD_QUALIFIER endl;        return 2;    }    while (more)    {        char fURI[1000];        //initialize the array to zeros        memset(fURI,0,sizeof(fURI));        if (doList) {            if (! fin.eof() ) {                fin.getline (fURI, sizeof(fURI));                if (!*fURI)                    continue;                else {                    xmlFile = fURI;                    XERCES_STD_QUALIFIER cerr << "==Parsing== " << xmlFile << XERCES_STD_QUALIFIER endl;                }            }            else                break;        }        else {            xmlFile = argV[argInd];            more = false;        }        //reset error count first        errorHandler.resetErrors();        try        {            const unsigned long startMillis = XMLPlatformUtils::getCurrentMillis();            parser->parse(xmlFile);            const unsigned long endMillis = XMLPlatformUtils::getCurrentMillis();            duration = endMillis - startMillis;        }        catch (const OutOfMemoryException&)        {            XERCES_STD_QUALIFIER cerr << "OutOfMemoryException during parsing: '" << xmlFile << "'\n" << XERCES_STD_QUALIFIER endl;            errorOccurred = true;            continue;        }        catch (const XMLException& toCatch)        {            XERCES_STD_QUALIFIER cerr << "\nError during parsing: '" << xmlFile << "'\n"                 << "Exception message is:  \n"                 << StrX(toCatch.getMessage()) << "\n" << XERCES_STD_QUALIFIER endl;            errorOccurred = true;            continue;        }        catch (const DOM_DOMException& toCatch)        {            XERCES_STD_QUALIFIER cerr << "\nDOM Error during parsing: '" << xmlFile << "'\n"                 << "DOMException code is:  \n"                 << toCatch.code << "\n" << XERCES_STD_QUALIFIER endl;            errorOccurred = true;            continue;        }        catch (...)        {            XERCES_STD_QUALIFIER cerr << "\nUnexpected exception during parsing: '" << xmlFile << "'\n";            errorOccurred = true;            continue;        }        //        //  Extract the DOM tree, get the list of all the elements and report the        //  length as the count of elements.        //        if (errorHandler.getSawErrors())        {            XERCES_STD_QUALIFIER cout << "\nErrors occurred, no output available\n" << XERCES_STD_QUALIFIER endl;            errorOccurred = true;        }         else        {            DOM_Document doc = parser->getDocument();            unsigned int elementCount = doc.getElementsByTagName("*").getLength();            // Print out the stats that we collected and time taken.            XERCES_STD_QUALIFIER cout << xmlFile << ": " << duration << " ms ("                 << elementCount << " elems)." << XERCES_STD_QUALIFIER endl;        }    }    if (doList)        fin.close();    //    //  Delete the parser itself.  Must be done prior to calling Terminate, below.    //    delete parser;    // And call the termination method    XMLPlatformUtils::Terminate();    if (errorOccurred)        return 4;    else        return 0;}DeprecatedDOMCountErrorHandler::DeprecatedDOMCountErrorHandler() :    fSawErrors(false){}DeprecatedDOMCountErrorHandler::~DeprecatedDOMCountErrorHandler(){}// ---------------------------------------------------------------------------//  DeprecatedDOMCountHandlers: Overrides of the SAX ErrorHandler interface// ---------------------------------------------------------------------------void DeprecatedDOMCountErrorHandler::error(const SAXParseException& e){    fSawErrors = true;    XERCES_STD_QUALIFIER cerr << "\nError at file " << StrX(e.getSystemId())         << ", line " << e.getLineNumber()         << ", char " << e.getColumnNumber()         << "\n  Message: " << StrX(e.getMessage()) << XERCES_STD_QUALIFIER endl;}void DeprecatedDOMCountErrorHandler::fatalError(const SAXParseException& e){    fSawErrors = true;    XERCES_STD_QUALIFIER cerr << "\nFatal Error at file " << StrX(e.getSystemId())         << ", line " << e.getLineNumber()         << ", char " << e.getColumnNumber()         << "\n  Message: " << StrX(e.getMessage()) << XERCES_STD_QUALIFIER endl;}void DeprecatedDOMCountErrorHandler::warning(const SAXParseException& e){    XERCES_STD_QUALIFIER cerr << "\nWarning at file " << StrX(e.getSystemId())         << ", line " << e.getLineNumber()         << ", char " << e.getColumnNumber()         << "\n  Message: " << StrX(e.getMessage()) << XERCES_STD_QUALIFIER endl;}void DeprecatedDOMCountErrorHandler::resetErrors(){    fSawErrors = false;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色偷偷一区二区三区| 国产成人激情av| 久久免费午夜影院| 欧美一区二区三区成人| 久久精品日韩一区二区三区| 欧美激情一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 99热精品一区二区| 丁香六月综合激情| 在线免费观看一区| 91精品国产一区二区| 日本aⅴ免费视频一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 国产欧美一区视频| 中文字幕佐山爱一区二区免费| 亚洲乱码日产精品bd| 美女网站色91| 欧美三级日韩三级| 成人欧美一区二区三区视频网页| 久久国产人妖系列| 日韩欧美一区电影| 午夜电影久久久| 欧美日韩一级视频| 午夜精品免费在线观看| 国产欧美精品一区| 日韩亚洲欧美成人一区| 免费人成黄页网站在线一区二区| 精品理论电影在线观看| 另类人妖一区二区av| 亚洲女同一区二区| 色哟哟欧美精品| 国产.精品.日韩.另类.中文.在线.播放| 欧美精品一区二区精品网| 美女性感视频久久| 亚洲国产精品久久人人爱| 欧美色综合网站| 日韩高清在线不卡| 欧美不卡123| 67194成人在线观看| 日韩电影一二三区| 亚洲国产精品久久久久秋霞影院| 亚洲视频资源在线| 亚洲午夜国产一区99re久久| 国产精品女上位| 欧洲中文字幕精品| 一本一本大道香蕉久在线精品| 99久久精品一区二区| 亚洲成av人片一区二区梦乃| 精品国产一区二区精华| 日韩美女主播在线视频一区二区三区 | 日韩国产一区二| 午夜电影网亚洲视频| 日韩不卡手机在线v区| 蜜桃精品在线观看| 国产在线国偷精品产拍免费yy| 国产日韩精品一区| 国产农村妇女精品| 亚洲一区二区在线视频| 日本一区二区三级电影在线观看| 欧美激情艳妇裸体舞| 亚洲久本草在线中文字幕| 免费观看在线色综合| 成人污污视频在线观看| 91福利国产成人精品照片| 国产成人av网站| 91在线免费看| 日韩午夜激情视频| 中文字幕一区二区不卡| 免费欧美高清视频| 成人app在线| 不卡的看片网站| 8v天堂国产在线一区二区| 久久久久久久久久美女| 亚洲国产精品久久不卡毛片| 狠狠色丁香久久婷婷综合_中| 日韩va亚洲va欧美va久久| 国产一区二区剧情av在线| 欧美色图在线观看| 1024亚洲合集| 国产福利一区二区三区视频在线| 色婷婷av一区二区三区软件| 精品免费一区二区三区| 午夜电影一区二区| 在线观看av一区| 一区二区三区毛片| 麻豆国产精品视频| 欧美午夜精品一区二区三区| 中文字幕亚洲不卡| 成人av影视在线观看| 久久久久久久网| 国产91丝袜在线播放| 国产欧美在线观看一区| 成人一区二区视频| 国产精品伦理一区二区| 欧美一区二区三区在线电影| 成人理论电影网| 中文字幕一区二区三区在线不卡| av高清不卡在线| 亚洲欧美另类久久久精品2019| eeuss国产一区二区三区| 亚洲天堂福利av| 在线免费亚洲电影| 午夜亚洲福利老司机| 91精品国产入口在线| 国内精品久久久久影院薰衣草| 久久综合九色综合97_久久久| 国产亲近乱来精品视频| 97精品久久久午夜一区二区三区| 中文字幕视频一区二区三区久| 一本一本久久a久久精品综合麻豆| 国产精品热久久久久夜色精品三区| 99热精品国产| 国产一区二区精品久久99| 亚洲欧美日韩在线不卡| 日韩欧美一区二区三区在线| av资源站一区| 亚洲一区在线观看视频| 欧美精品一区二区三区高清aⅴ | 欧美成人女星排名| 91在线无精精品入口| 免费精品99久久国产综合精品| 自拍视频在线观看一区二区| 日韩欧美亚洲国产另类| 不卡一区在线观看| 久久国产综合精品| 亚洲大片在线观看| 一区二区三区日韩在线观看| 2022国产精品视频| 337p亚洲精品色噜噜狠狠| 色婷婷综合久久久中文一区二区 | 国产精品毛片久久久久久| 在线播放欧美女士性生活| 丝袜亚洲精品中文字幕一区| 91美女视频网站| 亚洲动漫第一页| 一区二区三区在线免费观看| 国产精品乱人伦| 国产精品色哟哟| 欧美激情中文字幕| 久久影音资源网| 日韩色在线观看| 欧美一区二区私人影院日本| 欧美在线观看一区二区| 欧美日韩亚洲综合一区二区三区| 日本高清不卡一区| 欧美在线高清视频| 日韩欧美国产综合在线一区二区三区| 欧美性色aⅴ视频一区日韩精品| 在线亚洲免费视频| 91精品在线观看入口| 欧美另类一区二区三区| 日韩欧美不卡一区| 国产欧美日韩精品一区| 国产精品的网站| 精品美女一区二区| 日本一区二区视频在线观看| 国产精品免费视频观看| 亚洲美女淫视频| 天堂精品中文字幕在线| 国产老妇另类xxxxx| 日韩激情中文字幕| 国产乱国产乱300精品| 欧美三级蜜桃2在线观看| 欧美一区二区三区四区视频| 国产色产综合产在线视频 | 欧美一区二区精品久久911| 精品国产伦一区二区三区免费| 国产精品久久久久久福利一牛影视| 亚洲码国产岛国毛片在线| 99精品视频在线观看| 91精品国产一区二区三区蜜臀| 亚洲国产精品成人综合| 天天色图综合网| 91麻豆免费在线观看| 久久女同性恋中文字幕| 亚洲一区二区三区小说| 成人免费毛片嘿嘿连载视频| 欧美一卡2卡三卡4卡5免费| 最新中文字幕一区二区三区 | 中文字幕在线不卡| 国产激情视频一区二区在线观看| 欧美日韩精品免费| 欧美色偷偷大香| 国产精品麻豆网站| 国产v日产∨综合v精品视频| 8x8x8国产精品| 日产国产高清一区二区三区| 欧美影院一区二区三区| 中文字幕一区二区三区不卡| 成人国产视频在线观看| 国产亚洲自拍一区| 国产精品一级黄| 久久久久国产精品麻豆ai换脸| 久久9热精品视频| 精品黑人一区二区三区久久 | 亚洲免费看黄网站| 在线观看亚洲精品| 免费成人在线观看| 精品电影一区二区| av亚洲精华国产精华|