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

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

?? xmlparse.cpp

?? 網(wǎng)關(guān)發(fā)送短信的程序網(wǎng)關(guān)發(fā)送短信的程序 網(wǎng)關(guān)發(fā)送短信的程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// CXMLParse.cpp: implementation of the CXMLParse class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "XMLParse.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define XML_SUCCEEDED() SUCCEEDED(m_hResult)
#define XML_FAILED() FAILED(m_hResult)

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CXMLParse::CXMLParse()
{
	ResetVariable();
}

CXMLParse::~CXMLParse()
{
	FreeAllResource();
}

//
// 在內(nèi)存中構(gòu)造DOM樹,自動創(chuàng)建處理指令(聲明)節(jié)點(diǎn)<?xml version="1.0" 
// encoding="UTF-8"?>,并根據(jù)指定的根元素名稱創(chuàng)建跟元素節(jié)點(diǎn).
// 可以在聲明節(jié)點(diǎn)后加入注釋,不支持DTD節(jié)點(diǎn)創(chuàng)建.
//
BOOL CXMLParse::CreateNewXMLDOM(
		LPCTSTR strTopElementName,			// 根元素名
		LPCTSTR strComment/*=""*/,			// 注釋
		LPCTSTR strEncoding/*="UTF-8"*/		// 編碼
)
{
	//初始化
	ResetVariable ();

	//創(chuàng)建COM對象實(shí)例
	m_hResult = CoCreateInstance(CLSID_DOMDocument40,
		                     NULL,
			   			     CLSCTX_INPROC_SERVER, 
		                     IID_IXMLDOMDocument2,
						     (void**)&m_pXMLDOMDoc);
	
	if ( XML_FAILED() )	// 如果COM對象實(shí)例創(chuàng)建失敗
	{
		AfxMessageBox ( "Create COM object instance failed" );
		OutErrorStr ();
		ResetNodePtr ( &m_pXMLDOMDoc );
		return FALSE;
	}

	// 創(chuàng)建處理指令(聲明)節(jié)點(diǎn)
	BSTR target = _com_util::ConvertStringToBSTR("xml");
	CString csHead;
	csHead.Format ( "version=\"1.0\" encoding=\"%s\"", strEncoding );
	BSTR data = csHead.AllocSysString();
	IXMLDOMProcessingInstruction *pi;
	m_hResult = m_pXMLDOMDoc->createProcessingInstruction ( target, data, &pi );
	
	if ( XML_FAILED() )	// 創(chuàng)建處理指令(聲明)節(jié)點(diǎn)失敗
	{
		//釋放內(nèi)存中COM對象實(shí)例
		ResetNodePtr ( &m_pXMLDOMDoc );
		AfxMessageBox ( "Create node failed" );
		return FALSE;
	}

	// 處理指令(聲明)節(jié)點(diǎn)插入DOM樹
	IXMLDOMNode * pTempNode = NULL;
	VARIANT vtTemp;
	vtTemp.vt= VT_EMPTY;
	m_hResult = m_pXMLDOMDoc->insertBefore ( pi, vtTemp, &pTempNode );
	
	if ( XML_FAILED() )	// 處理指令(聲明)節(jié)點(diǎn)插入DOM樹失敗
	{
		//釋放內(nèi)存中COM對象實(shí)例
		ResetNodePtr ( &pTempNode );
		ResetNodePtr ( &m_pXMLDOMDoc );
		AfxMessageBox ( "Create DOMTree failed" );
		return FALSE;
	}
	
	HRESULT hrErr1,hrErr2,hrErr3,hrErr4;		
	// 創(chuàng)建注釋節(jié)點(diǎn)
	IXMLDOMComment * pTempComment = NULL;
	BSTR tempComment = _com_util::ConvertStringToBSTR(strComment);
	hrErr1 = m_pXMLDOMDoc->createComment ( tempComment, &pTempComment );
	
	// 插入注釋節(jié)點(diǎn)到DOM樹
	ResetNodePtr ( &pTempNode );
	vtTemp.vt= VT_EMPTY;
	hrErr2 = m_pXMLDOMDoc->insertBefore ( pTempComment, vtTemp, &pTempNode);
	ResetNodePtr ( &pTempComment );
	
	//創(chuàng)建頂層元素節(jié)點(diǎn)
	IXMLDOMElement * pTempElement = NULL;
	BSTR tempElementName = _com_util::ConvertStringToBSTR ( strTopElementName );
	hrErr3 = m_pXMLDOMDoc->createElement ( tempElementName, &pTempElement );
	
	//插入頂層元素節(jié)點(diǎn)到DOM樹
	pTempNode = NULL;
	vtTemp.vt= VT_EMPTY;
	hrErr4 = m_pXMLDOMDoc->insertBefore ( pTempElement, vtTemp, &pTempNode );
	ResetNodePtr ( &pTempElement );
	
	if ( (hrErr1 == S_OK) && (hrErr2 == S_OK) && (hrErr3 == S_OK) && (hrErr4 == S_OK) )
	{
		IXMLDOMElement * pTopElement = NULL;
		m_pXMLDOMDoc->get_documentElement ( &pTopElement );
		
		//m_pCurNodeList賦值
		m_pXMLDOMDoc->selectNodes(_com_util::ConvertStringToBSTR("*"),
			&m_pCurNodeList);
		
		//m_pCurNode 指向根元素節(jié)點(diǎn)
		//m_nCurNodeListLength為1
		//m_nCurNodeNumber為0
		if (m_pCurNodeList != NULL)
		{
			m_pCurNodeList->get_length(&m_nCurNodeListLength);
			m_nCurNodeNumber = 0;
			m_pCurNodeList->get_item(m_nCurNodeNumber,&m_pCurNode);
		}
		
		//釋放臨時對象
		ResetNodePtr ( &pTopElement );
	}
	else
	{
		//釋放內(nèi)存中COM對象實(shí)例
		ResetNodePtr ( &m_pXMLDOMDoc );
		AfxMessageBox ( "Create or insert node failed" );
		return FALSE;
	}
	m_pRootNode = m_pCurNode;

	return TRUE;
}

void CXMLParse::OutErrorStr()
{
	CString csMsg;
	_com_error er( m_hResult );
	csMsg.Format ( "MSXML error : %s\n", er.ErrorMessage() );
	 AfxMessageBox ( csMsg );
}

//
// 將私有變量重設(shè)
//
void CXMLParse::ResetVariable()
{
	m_pXMLDOMDoc = NULL;
	m_pCurNodeList = NULL;
	m_nCurNodeListLength = 0;
	m_nCurNodeNumber = 0;
	m_pCurNode = NULL;
	m_hResult = S_OK;
	m_pRootNode = NULL;
	m_dwTotalElementNum = 0;
}

void CXMLParse::FreeAllResource()
{
	ResetNodePtr ( &m_pCurNode );
	ResetNodePtr ( &m_pCurNodeList );
	ResetNodePtr ( &m_pXMLDOMDoc );
	ResetVariable();
}

/**************************************************************************
* 函數(shù)介紹:將內(nèi)存中的DOM樹內(nèi)容保存到指定XML文件中.
*
* 輸入?yún)?shù):strDestinationFile:要寫入的XML文件的完整路徑名.
* 返回值  :TRUE	-	成功
*			FALSE	-	失敗
***************************************************************************/
BOOL CXMLParse::Save(LPCTSTR strDestinationFile)
{
	VARIANT varDestinationFile;
	varDestinationFile.vt = VT_BSTR; 
	varDestinationFile.bstrVal = _com_util::ConvertStringToBSTR(strDestinationFile);
	m_hResult = m_pXMLDOMDoc->save(varDestinationFile);
	if ( XML_FAILED() )
	{
		OutErrorStr();
		return FALSE;
	}
	return TRUE;
}
/**************************************************************************
* 函數(shù)介紹:指定XML源文件,在內(nèi)存中構(gòu)造DOM樹,
*           并讀取指定XML文件的內(nèi)容到DOM樹中.如果出錯則把COM對象實(shí)例(DOM樹)
*           釋放并且指向DOM樹的指針賦空.
*           如果XML文件讀取正確
*		    m_pCurNodeList包含一個節(jié)點(diǎn)即根元素節(jié)點(diǎn)
*		    m_pCurNode指向根元素節(jié)點(diǎn)
*		    m_nCurNodeListLength為1
*		    m_nCurNodeNumber為0
*
* 輸入?yún)?shù):lpszFileOrData	-	要讀取的XML文件的完整路徑名,或者是 XML 字符串
**************************************************************************/
BOOL CXMLParse::Load(LPCTSTR lpszFileOrData, BOOL bIsFileName/*=TRUE*/)
{
	if ( !lpszFileOrData || strlen(lpszFileOrData) < 1 ) return FALSE;
	//初始化
	ResetVariable ();
	
	//創(chuàng)建COM對象實(shí)例
	m_hResult = CoCreateInstance(CLSID_DOMDocument40,
		NULL,
		CLSCTX_INPROC_SERVER, 
		IID_IXMLDOMDocument2,
		(void**)&m_pXMLDOMDoc);
	
	// 如果COM對象實(shí)例創(chuàng)建失敗
	if ( XML_FAILED() )
	{
		AfxMessageBox ( "Create COM object instance failed" );
		OutErrorStr ();
		ResetNodePtr ( &m_pXMLDOMDoc );
		return FALSE;
	}
	
	// 讀取XML文檔內(nèi)容到內(nèi)存中DOM樹
	VARIANT_BOOL *bLoadSuccess = NULL;
	if ( bIsFileName )
	{
		VARIANT varSourceFile;
		varSourceFile.vt = VT_BSTR; 
		varSourceFile.bstrVal = _com_util::ConvertStringToBSTR(lpszFileOrData);
		
		//讀取源文件
		//如果有DTD則也進(jìn)行有效性檢查,否則不進(jìn)行有效性檢查
		m_hResult = m_pXMLDOMDoc->load(varSourceFile, bLoadSuccess);
	}
	else
	{
		m_hResult = m_pXMLDOMDoc->loadXML ( _com_util::ConvertStringToBSTR(lpszFileOrData), bLoadSuccess );
	}
	
	// 如果XML文件讀取錯誤(包括良構(gòu)和有效性檢查錯誤)
	if ( XML_FAILED() )	
	{
		//釋放內(nèi)存中COM對象實(shí)例
		ResetNodePtr ( &m_pXMLDOMDoc );		
		AfxMessageBox ( "Read XML file failed or file structure invalid" );
		return FALSE;
	}
	
	//如果XML文件讀取正確
	//m_pCurNodeList包含一個節(jié)點(diǎn)即根元素節(jié)點(diǎn)
	//m_pCurNode指向根元素節(jié)點(diǎn)
	//m_nCurNodeListLength為1
	//m_nCurNodeNumber為0
	IXMLDOMElement * pTopElement = NULL;
	m_pXMLDOMDoc->get_documentElement(&pTopElement);
	ResetNodePtr ( &pTopElement );
	
	//m_pCurNodeList賦值
	m_pXMLDOMDoc->selectNodes(_com_util::ConvertStringToBSTR("*"),
		&m_pCurNodeList);
	
	//m_pCurNode指向根元素節(jié)點(diǎn)
	//m_nCurNodeListLength為1
	//m_nCurNodeNumber為0
	if ( m_pCurNodeList != NULL )
	{
		m_pCurNodeList->get_length(&m_nCurNodeListLength);
		m_nCurNodeNumber = 0;
		m_pCurNodeList->get_item(m_nCurNodeNumber,&m_pCurNode);
	}
	m_pRootNode = m_pCurNode;
	return ( m_pRootNode != NULL );
}

/**************************************************************************
* 函數(shù)介紹:在當(dāng)前元素節(jié)點(diǎn)層次中變換當(dāng)前元素節(jié)點(diǎn).在同一節(jié)點(diǎn)鏈表中跳轉(zhuǎn)
*           如果執(zhí)行成功,使m_pCurNode指向當(dāng)前元素節(jié)點(diǎn)鏈表中的指定位置,
*           m_nCurNodeNumber為當(dāng)前元素節(jié)點(diǎn)在當(dāng)前元素節(jié)點(diǎn)鏈表中的位置. 
*
* 輸入?yún)?shù):curNodeNumber: int類型,指定要選中的元素節(jié)點(diǎn)在當(dāng)前元素節(jié)點(diǎn)鏈
*                          表中的位置.
* 返回值:	FALSE		-	指定的位置越界或者其它執(zhí)行錯誤.
*			TRUE:		-	執(zhí)行成功.
**************************************************************************/
BOOL CXMLParse::GoTo_ParallelNode(long curNodeNumber)
{
	//判斷指定的當(dāng)前元素節(jié)點(diǎn)的位置是否越界
	if ((curNodeNumber >= 0) && (curNodeNumber < m_nCurNodeListLength))
	{
		m_nCurNodeNumber = curNodeNumber;
		m_hResult = m_pCurNodeList->get_item(m_nCurNodeNumber, &m_pCurNode);
		if ( XML_SUCCEEDED() )
			return TRUE;
	}

	TRACE ( "Invalid function parameter or node position is wrong\n" );
	return FALSE;
}
/**************************************************************************
* 函數(shù)介紹:向下變換當(dāng)前元素節(jié)點(diǎn)層次.進(jìn)入子節(jié)點(diǎn)
*           如果當(dāng)前元素節(jié)點(diǎn)有子元素節(jié)點(diǎn)m_pCurNodeList和
*           m_nCurNodeListLength賦相應(yīng)值,m_nCurNodeNumber為0,m_pCurNode指
*			向新節(jié)點(diǎn)鏈表的第一個節(jié)點(diǎn).
*			如果當(dāng)前元素節(jié)點(diǎn)沒有子元素節(jié)點(diǎn),保持m_pCurNodeList,
*			m_nCurNodeListLength,m_nCurNodeNumber,m_pCurNode值不變.
*
* 返回值  :FALSE: 如果當(dāng)前元素節(jié)點(diǎn)沒有子元素節(jié)點(diǎn)或者其它執(zhí)行錯誤
*           TRUE: 如果當(dāng)前元素節(jié)點(diǎn)有子元素節(jié)點(diǎn)
**************************************************************************/
BOOL CXMLParse::GoTo_Child()
{
	IXMLDOMNodeList *pTempNodeList = NULL;
	m_pCurNode->selectNodes(_com_util::ConvertStringToBSTR("*"),&pTempNodeList);

	//判斷當(dāng)前元素節(jié)點(diǎn)是否有子元素節(jié)點(diǎn)
	if (pTempNodeList != NULL)
	{
		m_pCurNode->selectNodes(_com_util::ConvertStringToBSTR("*"),&m_pCurNodeList);
		m_pCurNodeList->get_length(&m_nCurNodeListLength);
		m_nCurNodeNumber = 0;	
		if (m_nCurNodeListLength > 0)
		{
			m_pCurNodeList->get_item(0,&m_pCurNode);
		}
		ResetNodePtr ( &pTempNodeList );
		return TRUE;
	}

	TRACE ( "Goto child node failed\n" );
	return FALSE;
}

//
// 由于 m_pCurNode 改變,所以需要更新其他當(dāng)前變量 m_pCurNodeList,
// m_nCurNodeNumber,m_nCurNodeListLength 的值
//
void CXMLParse::UpdateCurValue ()
{
	IXMLDOMNode * pTempNode = NULL;	
	m_pCurNode->get_parentNode ( &pTempNode );
	pTempNode->selectNodes(_com_util::ConvertStringToBSTR("*"),&m_pCurNodeList);
	ResetNodePtr ( &pTempNode );
}

/**************************************************************************
* 函數(shù)介紹:向上變換當(dāng)前元素節(jié)點(diǎn)層次.退回到父節(jié)點(diǎn)
*           如果當(dāng)前元素節(jié)點(diǎn)不是頂層元素節(jié)點(diǎn)m_pCurNodeList和
*           m_nCurNodeListLength賦相應(yīng)值,m_nCurNodeNumber為0,m_pCurNode指
*			向新節(jié)點(diǎn)鏈表的第一個節(jié)點(diǎn).
*			如果當(dāng)前元素節(jié)點(diǎn)是頂層元素節(jié)點(diǎn),保持m_pCurNodeList,
*			m_nCurNodeListLength,m_nCurNodeNumber,m_pCurNode值不變.
*
* 返回值  :FALSE: 如果當(dāng)前元素節(jié)點(diǎn)是頂層元素節(jié)點(diǎn)或者其它執(zhí)行錯誤
*           TRUE: 如果當(dāng)前元素節(jié)點(diǎn)不是頂層元素節(jié)點(diǎn)
**************************************************************************/
BOOL CXMLParse::GoTo_Parent()
{
	// 取當(dāng)前元素節(jié)點(diǎn)的父節(jié)點(diǎn)
	// 通過其父節(jié)點(diǎn)的類型判斷當(dāng)前元素節(jié)點(diǎn)是否為根元素節(jié)點(diǎn)
	IXMLDOMNode * pTempNode = NULL;
	m_pCurNode->get_parentNode ( &pTempNode );
	if ( pTempNode != NULL )
	{
		BSTR bszTemp;
		CString strTemp;
		pTempNode->get_nodeTypeString ( &bszTemp );
		strTemp = CString(bszTemp);

		//如果當(dāng)前元素節(jié)點(diǎn)不是根元素節(jié)點(diǎn)
		if ( strTemp.Compare("document") != 0 )
		{
			m_pCurNode = pTempNode;
			m_pCurNode->get_parentNode ( &pTempNode );
			pTempNode->selectNodes(_com_util::ConvertStringToBSTR("*"),&m_pCurNodeList);
			m_pCurNodeList->get_length(&m_nCurNodeListLength);
			m_nCurNodeNumber = 0;	
			if (m_nCurNodeListLength > 0)
			{
				m_pCurNodeList->get_item(0,&m_pCurNode);
				ResetNodePtr ( &pTempNode );
				return TRUE;
			}
		}
	}

	ResetNodePtr ( &pTempNode );
	return FALSE;
}

/**************************************************************************
* 函數(shù)介紹:退回到根點(diǎn)
*           如果當(dāng)前元素節(jié)點(diǎn)不是頂層元素節(jié)點(diǎn) m_pCurNodeList 和
*           m_nCurNodeListLength賦相應(yīng)值,m_nCurNodeNumber 為0, m_pCurNod e指
*			向新節(jié)點(diǎn)鏈表的第一個節(jié)點(diǎn).
*			如果當(dāng)前元素節(jié)點(diǎn)是頂層元素節(jié)點(diǎn),保持 m_pCurNodeList,
*			m_nCurNodeListLength ,m_nCurNodeNumber,m_pCurNode值不變.
*
* 返回值  :FALSE: 如果當(dāng)前元素節(jié)點(diǎn)是頂層元素節(jié)點(diǎn)或者其它執(zhí)行錯誤
*           TRUE: 如果當(dāng)前元素節(jié)點(diǎn)不是頂層元素節(jié)點(diǎn)
**************************************************************************/
BOOL CXMLParse::GoTo_Root()
{
	if ( !m_pRootNode )
		return FALSE;

	m_pCurNode = m_pRootNode;
	UpdateCurValue ();
	return TRUE;
}

/**************************************************************************
* 函數(shù)介紹:根據(jù)標(biāo)簽名跳轉(zhuǎn)
*           如果找到標(biāo)簽對應(yīng)的元素,節(jié)點(diǎn)m_pCurNodeList和
*           m_nCurNodeListLength 賦相應(yīng)值,m_nCurNodeNumber 為0,m_pCurNode指
*			向新節(jié)點(diǎn)鏈表的第一個節(jié)點(diǎn).
*			如果找不到標(biāo)簽對應(yīng)的元素,保持m_pCurNodeList,
*			m_nCurNodeListLength,m_nCurNodeNumber,m_pCurNode值不變.
*
* 返回值  :FALSE: 如果當(dāng)前元素節(jié)點(diǎn)是頂層元素節(jié)點(diǎn)或者其它執(zhí)行錯誤
*           TRUE: 如果當(dāng)前元素節(jié)點(diǎn)不是頂層元素節(jié)點(diǎn)
**************************************************************************/
BOOL CXMLParse::GoTo_TagName(LPCTSTR lpszTagName)
{
	IXMLDOMNodeList *pTempNodeList = NULL;
	m_hResult = m_pXMLDOMDoc->getElementsByTagName (
		_com_util::ConvertStringToBSTR(lpszTagName),
		&pTempNodeList );
	CString csMsg;
	if ( XML_FAILED() )
	{
		csMsg.Format ( "Could not find specify tag : [ %s ]", lpszTagName );
		AfxMessageBox ( csMsg );

		return FALSE;
	}
	IXMLDOMNode *pTempNode = NULL;
	m_hResult = pTempNodeList->get_item ( 0, &pTempNode );
	if ( XML_FAILED() || !pTempNode )
	{
		csMsg.Format ( "Get item failed. Tag name is : [ %s ]", lpszTagName );
		TRACE ( "%s\n", csMsg );
		return FALSE;
	}

	m_pCurNode = pTempNode;
	UpdateCurValue ();
	return TRUE;
}
/**************************************************************************
* 函數(shù)介紹:刪除當(dāng)前元素節(jié)點(diǎn)的指定屬性.
*
* 輸入?yún)?shù):strAttributeName: CString類型,指明當(dāng)前元素節(jié)點(diǎn)指定屬性的名稱.
* 返回值  :1:執(zhí)行成功.
*           2:執(zhí)行失敗.   
**************************************************************************/
BOOL CXMLParse::DelAttribute(LPCTSTR strAttributeName)
{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久综合久久| 欧美tk丨vk视频| 亚洲激情男女视频| 成人avav影音| 亚洲天堂免费看| 在线一区二区视频| 一区二区国产视频| 欧美精品久久99| 日本欧美大码aⅴ在线播放| 欧美一级欧美一级在线播放| 免费观看日韩电影| 久久久久久久性| 粉嫩一区二区三区性色av| 国产精品毛片a∨一区二区三区| av不卡在线播放| 亚洲国产视频a| 欧美肥胖老妇做爰| 国产主播一区二区三区| 国产精品久久久久久久久免费丝袜| 91麻豆高清视频| 亚洲h精品动漫在线观看| 日韩欧美在线不卡| 国产福利一区二区三区在线视频| 国产精品久久二区二区| 欧美伊人精品成人久久综合97| 亚洲aaa精品| 欧美精品一区在线观看| 粉嫩绯色av一区二区在线观看 | 国产美女在线精品| 国产精品亲子伦对白| 色婷婷av一区二区三区软件| 日韩在线播放一区二区| 国产无人区一区二区三区| 一本色道久久综合亚洲91| 蜜臀精品一区二区三区在线观看| 国产日韩三级在线| 欧美日韩在线免费视频| 国内精品视频666| 亚洲另类春色国产| 亚洲精品一区二区三区影院| 91免费看片在线观看| 久久超碰97人人做人人爱| 久久看人人爽人人| 国产在线精品一区二区不卡了 | 久久久久久97三级| 在线观看免费一区| 高清视频一区二区| 五月激情六月综合| 国产精品久久久久久久第一福利 | 欧美日本乱大交xxxxx| 国产白丝精品91爽爽久久| 三级亚洲高清视频| 国产精品青草久久| 日韩一二三区视频| 欧美丝袜丝nylons| 99国产一区二区三精品乱码| 国模无码大尺度一区二区三区| 夜夜嗨av一区二区三区| 国产欧美日韩视频在线观看| 9191精品国产综合久久久久久| 99精品一区二区| 国产91清纯白嫩初高中在线观看| 日韩高清一区在线| 亚洲制服丝袜av| 一色桃子久久精品亚洲| 亚洲精品五月天| 久久久久久久久97黄色工厂| 欧美美女直播网站| 91视频你懂的| 99国产一区二区三精品乱码| 国产不卡在线一区| 国内精品第一页| 日本不卡一区二区| 五月综合激情网| 亚洲在线一区二区三区| 亚洲免费看黄网站| 日韩毛片一二三区| 国产精品盗摄一区二区三区| 国产欧美日韩视频在线观看| 久久精品亚洲乱码伦伦中文| www一区二区| 久久综合久久综合久久| 精品sm捆绑视频| 久久久五月婷婷| 久久久国产综合精品女国产盗摄| 久久久久成人黄色影片| 久久久久亚洲蜜桃| 国产亚洲欧美日韩日本| 欧美激情中文不卡| 国产午夜一区二区三区| 中文一区二区完整视频在线观看| 欧美激情综合在线| 中文字幕一区二区三区不卡| 国产精品美女视频| 伊人色综合久久天天人手人婷| 亚洲人精品午夜| 一区二区欧美视频| 天涯成人国产亚洲精品一区av| 图片区小说区区亚洲影院| 青青草97国产精品免费观看无弹窗版| 午夜欧美大尺度福利影院在线看 | 久久影院午夜论| 欧美韩国日本综合| 亚洲精品国产精华液| 午夜久久久久久| 另类小说视频一区二区| 国产东北露脸精品视频| 波多野结衣亚洲一区| 91成人免费在线视频| 欧美丰满少妇xxxxx高潮对白| 日韩美女主播在线视频一区二区三区 | 自拍av一区二区三区| 亚洲国产日韩综合久久精品| 蜜臀av一区二区| 国产成人免费视频网站| 91九色最新地址| 日韩免费在线观看| 国产精品天干天干在观线| 亚洲第一搞黄网站| 精品一区二区在线视频| 99re免费视频精品全部| 717成人午夜免费福利电影| 久久亚洲精精品中文字幕早川悠里| 亚洲国产精品成人久久综合一区| 亚洲国产视频a| 国产麻豆精品theporn| 91免费在线看| 精品精品欲导航| 日韩美女视频一区二区| 毛片av一区二区三区| 91美女福利视频| 久久尤物电影视频在线观看| 一卡二卡欧美日韩| 国产美女娇喘av呻吟久久| 91黄色免费观看| 久久嫩草精品久久久精品| 性久久久久久久久久久久| 国产一区二区三区电影在线观看 | 欧美精品一区二区三区蜜桃| 一区二区三区四区不卡视频| 国产在线日韩欧美| 欧美日韩成人一区| 综合激情网...| 国产精品正在播放| 欧美一区二区成人| 亚洲一区二区在线免费观看视频| 国产精品 日产精品 欧美精品| 欧美久久久久久久久| 18成人在线观看| 国产精品中文字幕日韩精品| 制服.丝袜.亚洲.中文.综合| 亚洲综合在线五月| 成人黄色网址在线观看| 久久久久久久久久久黄色| 青青国产91久久久久久| 欧美日韩亚洲综合| 亚洲三级电影网站| 粉嫩aⅴ一区二区三区四区五区| 91精品蜜臀在线一区尤物| 一区二区三区视频在线观看| 成人av在线一区二区| 精品动漫一区二区三区在线观看| 日韩电影免费在线| 欧美视频一区二区三区在线观看| 一区二区中文视频| eeuss鲁片一区二区三区在线观看| 欧美va天堂va视频va在线| 理论片日本一区| 欧美一区二区在线视频| 天天综合网 天天综合色| 欧美又粗又大又爽| 亚洲国产另类av| 欧美三级一区二区| 亚洲国产精品欧美一二99| 欧美性videosxxxxx| 一区二区三区国产精华| 在线亚洲欧美专区二区| 亚洲国产另类精品专区| 欧美日韩国产综合久久| 天天操天天色综合| 在线不卡的av| 美女一区二区久久| 26uuu成人网一区二区三区| 狂野欧美性猛交blacked| 欧美不卡视频一区| 国产美女精品在线| 中文字幕一区二区三区在线观看| 99久久精品国产精品久久| 亚洲欧美色图小说| 欧美猛男男办公室激情| 男男gaygay亚洲| 久久综合久久久久88| 成人在线综合网| 亚洲精品久久久蜜桃| 在线观看av一区二区| 免费高清在线一区| 国产免费成人在线视频| 91美女片黄在线| 日韩在线a电影| 国产午夜精品一区二区三区四区|