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

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

?? dombuilder.cpp

?? This software aims to create an applet and panel tools to manage a wireless interface card, such as
?? CPP
字號:
//
// DOMBuilder.cpp
//
// $Id: //poco/Main/XML/src/DOMBuilder.cpp#5 $
//
// Copyright (c) 2004, Guenter Obiltschnig/Applied Informatics.
// All rights reserved.
// 
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
// 
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
// 
// 3. Redistributions in any form must be accompanied by information on
//    how to obtain complete source code for this software and any
//    accompanying software that uses this software.  The source code
//    must either be included in the distribution or be available for no
//    more than the cost of distribution plus a nominal fee, and must be
//    freely redistributable under reasonable conditions.  For an
//    executable file, complete source code means the source code for all
//    modules it contains.  It does not include source code for modules or
//    files that typically accompany the major components of the operating
//    system on which the executable file runs.
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//


#include "DOM/DOMBuilder.h"
#include "DOM/Document.h"
#include "DOM/DocumentType.h"
#include "DOM/CharacterData.h"
#include "DOM/Text.h"
#include "DOM/Comment.h"
#include "DOM/CDATASection.h"
#include "DOM/Element.h"
#include "DOM/Attr.h"
#include "DOM/Entity.h"
#include "DOM/EntityReference.h"
#include "DOM/Notation.h"
#include "DOM/ProcessingInstruction.h"
#include "DOM/AutoPtr.h"
#include "SAX/XMLReader.h"
#include "SAX/AttributesImpl.h"


XML_BEGIN


const XMLString DOMBuilder::EMPTY_STRING;


DOMBuilder::DOMBuilder(XMLReader& xmlReader, NamePool* pNamePool):
	_xmlReader(xmlReader),
	_pNamePool(pNamePool),
	_pDocument(0),
	_pParent(0),
	_pPrevious(0),
	_inCDATA(false),
	_namespaces(true)
{
	_xmlReader.setContentHandler(this);
	_xmlReader.setDTDHandler(this);
	_xmlReader.setProperty(XMLReader::PROPERTY_LEXICAL_HANDLER, static_cast<LexicalHandler*>(this));

	if (_pNamePool) _pNamePool->duplicate();
}


DOMBuilder::~DOMBuilder()
{
	if (_pNamePool) _pNamePool->release();
}


Document* DOMBuilder::parse(const XMLString& uri)
{
	setupParse();
	_pDocument->suspendEvents();
	try
	{
		_xmlReader.parse(uri);
	}
	catch (...)
	{
		_pDocument->release();
		_pDocument = 0;
		_pParent   = 0;
		_pPrevious = 0;
		throw;
	}
	_pDocument->resumeEvents();
	_pDocument->collectGarbage();
	return _pDocument;
}


Document* DOMBuilder::parse(InputSource* pInputSource)
{
	setupParse();
	_pDocument->suspendEvents();
	try
	{
		_xmlReader.parse(pInputSource);
	}
	catch (...)
	{
		_pDocument->release();
		_pDocument = 0;
		_pParent   = 0;
		_pPrevious = 0;
		throw;
	}
	_pDocument->resumeEvents();
	_pDocument->collectGarbage();
	return _pDocument;
}


void DOMBuilder::setupParse()
{
	_pDocument  = new Document(_pNamePool);
	_pParent    = _pDocument;
	_pPrevious  = 0;
	_inCDATA    = false;
	_namespaces = _xmlReader.getFeature(XMLReader::FEATURE_NAMESPACES);
}


inline void DOMBuilder::appendNode(AbstractNode* pNode)
{
	if (_pPrevious && _pPrevious != _pParent)
	{
		_pPrevious->_pNext = pNode;
		pNode->_pParent = _pParent;
		pNode->duplicate();
	}
	else _pParent->appendChild(pNode);
	_pPrevious = pNode;
}


void DOMBuilder::notationDecl(const XMLString& name, const XMLString* publicId, const XMLString* systemId)
{
	DocumentType* pDoctype = _pDocument->getDoctype();
	if (pDoctype)
	{
		AutoPtr<Notation> pNotation = _pDocument->createNotation(name, (publicId ? *publicId : EMPTY_STRING), (systemId ? *systemId : EMPTY_STRING));
		pDoctype->appendChild(pNotation);
	}
}


void DOMBuilder::unparsedEntityDecl(const XMLString& name, const XMLString* publicId, const XMLString& systemId, const XMLString& notationName)
{
	DocumentType* pDoctype = _pDocument->getDoctype();
	if (pDoctype)
	{
		AutoPtr<Entity> pEntity = _pDocument->createEntity(name, publicId ? *publicId : EMPTY_STRING, systemId, notationName);
		pDoctype->appendChild(pEntity);
	}
}


void DOMBuilder::setDocumentLocator(const Locator* loc)
{
}


void DOMBuilder::startDocument()
{
}


void DOMBuilder::endDocument()
{
}


void DOMBuilder::startElement(const XMLString& uri, const XMLString& localName, const XMLString& qname, const Attributes& attributes)
{
	AutoPtr<Element> pElem = _namespaces ? _pDocument->createElementNS(uri, qname.empty() ? localName : qname) : _pDocument->createElement(qname);

	const AttributesImpl& attrs = dynamic_cast<const AttributesImpl&>(attributes);
	for (AttributesImpl::iterator it = attrs.begin(); it != attrs.end(); ++it)
	{
		AutoPtr<Attr> pAttr = new Attr(_pDocument, 0, it->namespaceURI, it->localName, it->qname, it->value, it->specified);
		if (_namespaces) 
			pElem->setAttributeNodeNS(pAttr);
		else
			pElem->setAttributeNode(pAttr);
	}
	appendNode(pElem);
	_pParent = pElem;
}


void DOMBuilder::endElement(const XMLString& uri, const XMLString& localName, const XMLString& qname)
{
	_pPrevious = _pParent;
	_pParent   = static_cast<AbstractContainerNode*>(_pParent->parentNode());
}


void DOMBuilder::characters(const XMLChar ch[], int start, int length)
{
	if (_inCDATA)
	{
		if (_pPrevious && _pPrevious->nodeType() == Node::CDATA_SECTION_NODE)
		{
			static_cast<CDATASection*>(_pPrevious)->appendData(XMLString(ch + start, length));
		}
		else
		{
			AutoPtr<CDATASection> pCDATA = _pDocument->createCDATASection(XMLString(ch + start, length));
			appendNode(pCDATA);
		}
	}
	else
	{
		if (_pPrevious && _pPrevious->nodeType() == Node::TEXT_NODE)
		{
			static_cast<Text*>(_pPrevious)->appendData(XMLString(ch + start, length));
		}
		else
		{
			AutoPtr<Text> pText = _pDocument->createTextNode(XMLString(ch + start, length));
			appendNode(pText);
		}
	}
}


void DOMBuilder::ignorableWhitespace(const XMLChar ch[], int start, int length)
{
	characters(ch, start, length);
}


void DOMBuilder::processingInstruction(const XMLString& target, const XMLString& data)
{
	AutoPtr<ProcessingInstruction> pPI = _pDocument->createProcessingInstruction(target, data);
	appendNode(pPI);
}


void DOMBuilder::startPrefixMapping(const XMLString& prefix, const XMLString& uri)
{
}


void DOMBuilder::endPrefixMapping(const XMLString& prefix)
{
}


void DOMBuilder::skippedEntity(const XMLString& name)
{
	AutoPtr<EntityReference> pER = _pDocument->createEntityReference(name);
	appendNode(pER);
}


void DOMBuilder::startDTD(const XMLString& name, const XMLString& publicId, const XMLString& systemId)
{
	AutoPtr<DocumentType> pDoctype = new DocumentType(_pDocument, name, publicId, systemId);
	_pDocument->setDoctype(pDoctype);
}


void DOMBuilder::endDTD()
{
}


void DOMBuilder::startEntity(const XMLString& name)
{
}


void DOMBuilder::endEntity(const XMLString& name)
{
}


void DOMBuilder::startCDATA()
{
	_inCDATA = true;
}


void DOMBuilder::endCDATA()
{
	_inCDATA = false;
}


void DOMBuilder::comment(const XMLChar ch[], int start, int length)
{
	AutoPtr<Comment> pComment = _pDocument->createComment(XMLString(ch + start, length));
	appendNode(pComment);
}


XML_END

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久无| 欧美日韩精品专区| 国内精品免费在线观看| 久久99精品国产| 久久―日本道色综合久久| 欧美va亚洲va香蕉在线| 久久99精品国产.久久久久久| 欧美精品一区二区三区四区| 久久久久久麻豆| 久久精品99国产精品| 成人动漫一区二区三区| 粗大黑人巨茎大战欧美成人| 国精产品一区一区三区mba桃花 | 亚洲综合区在线| 欧美色成人综合| 激情久久五月天| 国产精品青草久久| 亚洲黄色小视频| 欧美绝品在线观看成人午夜影视 | 亚洲另类在线制服丝袜| 欧美伊人久久久久久午夜久久久久| 欧洲国内综合视频| 6080日韩午夜伦伦午夜伦| 26uuu另类欧美亚洲曰本| 国产精品久久久久天堂| 欧美日韩一区二区三区高清 | 亚洲一区二区在线观看视频 | 欧美区一区二区三区| 精品乱人伦一区二区三区| 中文字幕免费不卡| 日韩高清电影一区| 99精品视频一区| 91精品国产综合久久久久久久久久| 亚洲精品在线免费观看视频| heyzo一本久久综合| 男女男精品网站| 亚洲欧洲韩国日本视频| 九色综合狠狠综合久久| 在线看日韩精品电影| 韩国女主播成人在线观看| 欧美在线不卡一区| 91网站在线观看视频| 麻豆精品在线看| 夜色激情一区二区| 国产精品一区二区黑丝| 亚洲成人777| 日韩美女视频一区二区| 国产一区二区三区香蕉| 欧美一区二区三区爱爱| 在线视频综合导航| 中文字幕精品一区二区精品绿巨人 | 亚洲伦理在线免费看| 日韩免费视频线观看| 亚洲6080在线| 最新成人av在线| 国产激情视频一区二区三区欧美 | 欧美亚洲动漫精品| 国产精品成人免费精品自在线观看 | 国产·精品毛片| 日韩欧美国产午夜精品| 亚洲小说欧美激情另类| 国产精品久久久久久福利一牛影视 | 免费日本视频一区| 亚洲精品成人a在线观看| 国产精品午夜久久| 久久久久久久久久久久久夜| 欧美一级日韩一级| 欧美嫩在线观看| 欧美日韩综合不卡| 91一区二区在线| 成人动漫一区二区三区| 国v精品久久久网| 国产美女在线精品| 国产乱子伦视频一区二区三区 | 久久综合色一综合色88| 日韩免费一区二区| 欧美成人aa大片| 日韩一级片网址| 欧美变态凌虐bdsm| 欧美变态口味重另类| 久久久精品日韩欧美| 久久先锋影音av| 国产女主播视频一区二区| 日本一区二区成人| 国产精品久久午夜夜伦鲁鲁| 国产精品99久久久久| 国产激情精品久久久第一区二区| 久久精品在线观看| 日本一区二区三区电影| 亚洲同性gay激情无套| 亚洲人成精品久久久久久| 一区二区国产盗摄色噜噜| 亚洲美女少妇撒尿| 欧美另类一区二区三区| 日韩av在线播放中文字幕| 日韩欧美国产小视频| 国产一区二区三区日韩| 国产精品久久久久一区| 91久久久免费一区二区| 丝袜国产日韩另类美女| 蜜臀av性久久久久av蜜臀妖精| 欧美精品一区二区三区在线| 国产99精品国产| eeuss鲁片一区二区三区| 精品视频一区 二区 三区| 日韩av一区二区三区四区| 亚洲精品一线二线三线| jlzzjlzz亚洲女人18| 欧美色图激情小说| 久久91精品久久久久久秒播| av电影天堂一区二区在线观看| 亚洲综合在线第一页| 精品国产制服丝袜高跟| 成人理论电影网| 日本不卡不码高清免费观看| 欧美成人vr18sexvr| 成人污污视频在线观看| 欧美影院一区二区| 欧美大片顶级少妇| 一本色道亚洲精品aⅴ| 欧美一级艳片视频免费观看| 国产99久久久久| 欧美日韩精品福利| av不卡一区二区三区| 精品久久国产老人久久综合| 97精品国产露脸对白| 欧美电影免费观看完整版| 91视频在线观看免费| 久草这里只有精品视频| 一区二区三区国产豹纹内裤在线| 国产剧情在线观看一区二区 | 亚洲福中文字幕伊人影院| 精品一区二区三区免费毛片爱 | 国产精品一线二线三线| 亚洲成人久久影院| 成人免费视频一区| 麻豆精品视频在线| 亚洲国产婷婷综合在线精品| 中文字幕不卡在线播放| 欧美一级片在线看| 一本大道久久a久久精二百| 精品区一区二区| 在线视频国产一区| 国产精品系列在线| 欧美大片日本大片免费观看| 在线看国产一区二区| 播五月开心婷婷综合| 另类成人小视频在线| 首页欧美精品中文字幕| 依依成人精品视频| 国产精品国产自产拍在线| 九色综合狠狠综合久久| 免费看日韩精品| 日韩电影一二三区| 欧美视频三区在线播放| 国产精品国产三级国产aⅴ入口| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩mp4| 伊人性伊人情综合网| 99精品国产热久久91蜜凸| 成人一道本在线| 日本一区二区在线不卡| 国产欧美一区二区精品仙草咪| 国内精品伊人久久久久av影院| 蜜桃视频在线观看一区二区| 欧美另类变人与禽xxxxx| 亚洲超碰精品一区二区| 欧美日韩午夜在线视频| 亚洲午夜国产一区99re久久| 亚洲成av人影院在线观看网| 一区二区三区中文字幕精品精品 | 美国毛片一区二区| 91精品午夜视频| 久久综合色天天久久综合图片| 美女在线视频一区| 国产精品影视在线| 成人亚洲一区二区一| 国产日产欧美精品一区二区三区| 中文字幕在线一区免费| 91老师片黄在线观看| 欧美三区在线视频| 欧美一级爆毛片| 极品美女销魂一区二区三区| 久久青草国产手机看片福利盒子 | 欧美国产亚洲另类动漫| 成人激情开心网| 色吧成人激情小说| 91精品国产91久久久久久一区二区 | 欧美精品亚洲二区| 欧美一区二区三区免费在线看| 欧美一卡2卡3卡4卡| 久久这里只有精品6| 成人国产一区二区三区精品| 日韩伦理av电影| 三级影片在线观看欧美日韩一区二区 | 懂色av一区二区夜夜嗨| 99久久99久久久精品齐齐| 欧美午夜理伦三级在线观看| 亚洲成人综合视频| 国产精品88888|