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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? markupdlg.cpp

?? 解析xml文件的強大包
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	Check( xml.FindElem() );
	Check( xml.GetAttrib(_T("d")) == _T("d\'d") );
	Check( xml.GetAttrib(_T("s")) == _T("s\"s") );
	Check( xml.SetAttrib( _T("d"), _T("d\'d") ) );
	Check( xml.GetAttrib(_T("d")) == _T("d\'d") );
	Check( xml.GetAttrib(_T("s")) == _T("s\"s") );
	Check( xml.GetAttrib(_T("g1")) == _T(">") );
	Check( xml.GetAttrib(_T("g2")) == _T(">") );

	// FindElem Tag Name Test
	StartCheckZone( _T("FindElem Tag Name Test") );
	xml.SetDoc( NULL );
	xml.AddElem( _T("R") );
	xml.AddChildElem( _T("N"), _T("A") );
	xml.AddChildElem( _T("Name"), _T("B") );
	xml.AddChildElem( _T("Na"), _T("C") );
	xml.AddChildElem( _T("Nam"), _T("D") );
	xml.ResetChildPos();
	Check( xml.FindChildElem(_T("Name")) );
	Check( xml.GetChildData() == _T("B") );
	Check( xml.FindChildElem(_T("Nam")) );
	Check( xml.GetChildData() == _T("D") );

	// Copy Constructor Heap Test
#ifndef MARKUP_MSXML
	StartCheckZone( _T("Copy Constructor Heap Test") );
	Check( AfxCheckMemory() );
#if defined( MARKUP_STL )
	CMarkupSTL xmlTest(xml);
#else
	CMarkup xmlTest(xml);
#endif
	Check( AfxCheckMemory() );
	xmlTest.AddElem( _T("AfterCopyEmpty") );
	Check( AfxCheckMemory() );
	xmlTest.SetDoc( NULL );
	xml = xmlTest;
	xml.AddElem( _T("AfterCopyEmpty") );
	Check( AfxCheckMemory() );
#endif

	// CDATA Section Test
	StartCheckZone( _T("CDATA Section Test") );
	xml.SetDoc( NULL );
	Check( xml.AddElem( _T("R") ) );
	Check( xml.AddChildElem( _T("C") ) );
	Check( xml.SetChildData( _T("a]]>b]]>c]]>d"), 1 ) );
	Check( xml.GetChildData() == _T("a]]>b]]>c]]>d") );
	Check( xml.IntoElem() );
	Check( xml.SetData( _T("]]>"), 1 ) );
	Check( xml.GetData() == _T("]]>") );
	CString csCDATASubDoc = _CSTR( xml.GetSubDoc() );
	csCDATASubDoc.TrimRight();
	Check( csCDATASubDoc == _T("<C><![CDATA[]]]]><![CDATA[>]]></C>") );
	csCDATASubDoc = _T("<C><![CDATA[a]]>]]&gt;<![CDATA[a]]></C>");
	Check( xml.AddSubDoc( csCDATASubDoc ) );
	Check( xml.GetData() == _T("a]]>a") );

	// Underscore tag name check
	StartCheckZone( _T("Tag Name Test") );
	xml.SetDoc( NULL );
	Check( xml.AddElem( _T("_Underscore") ) );
	CString csTagNameDoc = _CSTR(xml.GetDoc());
	Check( xml.SetDoc( csTagNameDoc ) );
	xml.FindElem();
	Check( xml.GetTagName() == _T("_Underscore") );

	// ORDER Test, simple XML example
	StartCheckZone( _T("ORDER Test") );
	xml.SetDoc( NULL );
	Check( xml.AddElem( _T("ORDER") ) );
	Check( xml.IntoElem() );
	Check( xml.AddElem( _T("ITEM") ) );
	Check( xml.AddChildElem( _T("NAME"), _T("carrots") ) );
	Check( xml.AddChildElem( _T("QTY"), _T("1") ) );
	Check( xml.AddChildElem( _T("PRICE"), _T(".98") ) );
	Check( xml.AddChildAttrib( _T("unit"), _T("1 lb") ) );
	Check( xml.AddElem( _T("ITEM") ) );
	Check( xml.AddChildElem( _T("NAME"), _T("onions") ) );
	Check( xml.AddChildElem( _T("QTY"), _T("1") ) );
	Check( xml.AddChildElem( _T("PRICE"), _T("1.10") ) );
	Check( xml.AddChildAttrib( _T("unit"), _T("3 lb bag") ) );
	Check( xml.AddChildElem( _T("SUPPLIER"), _T("Hanover") ) );

	// Create List
	StartCheckZone( _T("List Test") );
	CString csList;
	xml.ResetPos();
	Check( xml.FindElem( _T("ORDER") ) );
	while ( xml.FindChildElem( _T("ITEM") ) )
	{
		xml.IntoElem();
		xml.FindChildElem( _T("NAME") );
		csList += _CSTR(xml.GetChildData());
		csList += _T("\n");
#ifndef MARKUP_MSXML
		xml.SavePos();
#endif
		xml.OutOfElem();
	}
#if ! defined( MARKUP_MSXML )
	xml.RestorePos();
	Check( xml.GetChildData() == _T("onions") );
#endif
	Check( csList == _T("carrots\nonions\n") );

	// December Test, add and remove five elements repeatedly
	StartCheckZone( _T("December Test") );
	struct TestData { _TCHAR* szName; _TCHAR* szValue; } td[] =
	{
		_T("patridge"), _T("PEARTREE"),
		_T("2turtle"), _T("DOVES"),
		_T("3french"), _T("HENS"),
		_T("4calling"), _T("BIRDS"),
		_T("5golden"), _T("RINGS"),
	};
	int nTD;
	xml.SetDoc( _T("") );
	Check( xml.AddElem( _T("RESULT") ) );
	for ( nTD=0; nTD<=4; ++nTD )
	{
		xml.AddChildElem( _T("VAR"), td[nTD].szValue );
		xml.SetChildAttrib( _T("name"), td[nTD].szName );
	}
	for ( nTD=0; nTD<=4; ++nTD )
	{
		xml.ResetPos();
		while ( xml.FindChildElem( _T("VAR") ) )
			if ( xml.GetChildAttrib( _T("name") ) == td[nTD].szName )
			{
				xml.RemoveChildElem();
				break;
			}
		xml.AddChildElem( _T("VAR"), td[nTD].szValue );
		xml.SetChildAttrib( _T("name"), td[nTD].szName );
	}
	for ( nTD=4; nTD>=0; --nTD )
	{
		xml.ResetPos();
		while ( xml.FindChildElem( _T("VAR") ) )
			if ( xml.GetChildAttrib( _T("name") ) == td[nTD].szName )
			{
				xml.RemoveChildElem();
				break;
			}
		xml.ResetChildPos();
		xml.AddChildElem( _T("VAR"), td[nTD].szValue );
		xml.SetChildAttrib( _T("name"), td[nTD].szName );
	}
	// <RESULT>
	// <VAR name="5golden">RINGS</VAR>
	// <VAR name="4calling">BIRDS</VAR>
	// <VAR name="3french">HENS</VAR>
	// <VAR name="2turtle">DOVES</VAR>
	// <VAR name="patridge">PEARTREE</VAR>
	// </RESULT>
	xml.ResetPos();
	for ( nTD=4; nTD>=0; --nTD )
	{
		Check( xml.FindChildElem() );
		Check( xml.GetChildData() == td[nTD].szValue );
		Check( xml.GetChildAttrib( _T("name") ) == td[nTD].szName );
	}

	// Add Insert Test, test siblings created in correct sequence
	_TCHAR* aszNums[] = { _T("zero"),_T("one"),_T("two"),_T("three"),_T("four"),_T("five"),_T("six") };
	CString csInside = _T("_in6");
	StartCheckZone( _T("Insert Test") );
	xml.SetDoc( _T("") );
	xml.AddElem( _T("root") );
	xml.AddChildElem( aszNums[1] );
	xml.ResetChildPos();
	xml.AddChildElem( aszNums[3] );
	xml.ResetChildPos();
	xml.FindChildElem();
	xml.InsertChildElem( aszNums[0] );
	xml.RemoveChildElem();
	xml.InsertChildElem( aszNums[0] );
	xml.FindChildElem();
	xml.AddChildElem( aszNums[2] );
	xml.FindChildElem();
	xml.AddChildElem( aszNums[4] );
	xml.FindChildElem();
	xml.AddChildElem( aszNums[5] );
	xml.ResetChildPos();
	xml.IntoElem();
	xml.FindElem();
	xml.RemoveElem();
	xml.InsertElem( aszNums[0] );
	xml.ResetMainPos();
	xml.AddElem( aszNums[6] );
	xml.IntoElem();
	xml.AddElem( aszNums[1] + csInside );
	xml.ResetMainPos();
	xml.AddElem( aszNums[3] + csInside );
	xml.ResetMainPos();
	xml.FindElem();
	xml.InsertElem( aszNums[0] + csInside );
	xml.RemoveElem();
	xml.ResetMainPos();
	xml.InsertElem( aszNums[0] + csInside );
	xml.FindElem();
	xml.AddElem( aszNums[2] + csInside );
	xml.FindElem();
	xml.AddElem( aszNums[4] + csInside );
	xml.FindElem();
	xml.AddElem( aszNums[5] + csInside );
	// Should result in the following (indented to illustrate):
	// <root>
	//   <zero/>
	//   <one/>
	//   <two/>
	//   <three/>
	//   <four/>
	//   <five/>
	//   <six>
	//     <zero_in6/>
	//     <one_in6/>
	//     <two_in6/>
	//     <three_in6/>
	//     <four_in6/>
	//     <five_in6/>
	//   </six>
	// </root>
	xml.ResetPos();
	for ( int nIT=0; nIT<7; ++nIT )
	{
		Check( xml.FindChildElem() );
		Check( xml.IntoElem() );
		Check( xml.GetTagName() == aszNums[nIT] );
		if ( nIT == 6 )
		{
			for ( int nITinner=0; nITinner<6; ++nITinner )
			{
				Check( xml.FindChildElem() );
				Check( _CSTR(xml.GetChildTagName()) == CString(aszNums[nITinner])+csInside );
			}
		}
		Check( xml.OutOfElem() );
	}

	// Palmer Test
	StartCheckZone( _T("Palmer Test") );
	xml.SetDoc( _T("") );
	Check( xml.AddElem( _T("one") ) );
	Check( xml.AddChildElem( _T("two") ) );
	Check( xml.RemoveChildElem() );
	Check( xml.AddChildElem( _T("three") ) );
	// <one>
	// <three/>
	// </one>
	xml.ResetPos();
	Check( xml.FindChildElem() );
	Check( xml.GetChildTagName() == _T("three") );

	// SetData Test, check empty elements, normal, and CDATA
	StartCheckZone( _T("SetData Test") );
	Check( xml.SetDoc( _T("<?xml version=\"1.0\"?>\r\n<ROOT>data</ROOT>") ) );
	Check( xml.FindElem() );
	xml.SetData( _T("moredata<>&") );
	Check( xml.GetData() == _T("moredata<>&") );
	xml.SetData( _T("n<6"), 1 );
	Check( xml.GetData() == _T("n<6") );
	xml.SetData( _T("") );
	xml.AddChildElem( _T("CHILD") );
	xml.SetChildData( _T("data<>&") );
	Check( xml.GetChildData() == _T("data<>&") );
	xml.SetChildData( _T("n<6"), 1 );
	xml.InsertChildElem( _T("CHILD") );
	xml.IntoElem();
	Check( xml.SetData(_T("")) );
	xml.SetData( _T("final") );
	Check( xml.GetData() == _T("final") );
	xml.FindElem();
	Check( xml.GetData() == _T("n<6") );

	// Car Test, add and replace randomly chosen attributes
	StartCheckZone( _T("Random Car Part Test") );
	struct CarTestData { _TCHAR* szLow; _TCHAR* szUp; _TCHAR* szMix; } aCT[] =
	{
		_T("up"), _T("SKY"), _T("Light"),
		_T("down"), _T("FLOOR"), _T("Dust"),
		_T("left"), _T("DOOR"), _T("Handle"),
		_T("right"), _T("SEAT"), _T("Gear"),
		_T("back"), _T("TRUNK"), _T("Tread"),
		_T("forward"), _T("GRILL"), _T("Motor"),
		_T(""), _T(""), _T("")
	};
	xml.SetDoc( _T("") );
	xml.AddElem( _T("CAR") );
	int nAt, nPart;
	LPCTSTR szLow, szUp, szMix;
	for ( nAt = 0; nAt < 20; ++nAt )
	{
		szLow = aCT[RandInt(6)].szLow;
		szMix = aCT[RandInt(6)].szMix;
		xml.SetAttrib( szLow, szMix );
		Check( xml.GetAttrib(szLow) == szMix );
	}
	for ( nPart=0; nPart<100; ++nPart )
	{
		xml.AddChildElem( aCT[RandInt(6)].szUp );
		for ( nAt = 0; nAt < 8; ++nAt )
		{
			szLow = aCT[RandInt(6)].szLow;
			szMix = aCT[RandInt(6)].szMix;
			xml.SetChildAttrib( szLow, szMix );
			Check( xml.GetChildAttrib(szLow) == szMix );
		}
		szLow = aCT[RandInt(6)].szLow;
		szUp = aCT[RandInt(6)].szUp;
		xml.SetChildAttrib( szLow, szUp );
		Check( xml.GetChildAttrib(szLow) == szUp );
	}
	CString csCarDoc = _CSTR(xml.GetDoc());
	Check( xml.SetDoc( csCarDoc ) );

	// Car Attrib Speed Test
	StartCheckZone( _T("Car Attrib Speed Test") );
	xml.SetDoc( NULL );
	xml.AddElem( _T("CARSPEED") );
	TimeStart();
	for ( nPart=0; nPart<200; ++nPart )
	{
		xml.AddChildElem( aCT[RandInt(6)].szUp );
		for ( nAt = 0; nAt < 4; ++nAt )
		{
			szLow = aCT[RandInt(6)].szLow;
			szMix = aCT[RandInt(6)].szMix;
			xml.SetChildAttrib( szLow, szMix );
			szLow = aCT[RandInt(6)].szLow;
			szUp = aCT[RandInt(6)].szUp;
			xml.SetChildAttrib( szLow, szUp );
		}
	}
	int nAttribCreateTime = TimeStop();
	xml.ResetPos();
	TimeStart();
	CString csAttribName, csAttribs;
	while ( xml.FindChildElem() )
	{
		xml.IntoElem();
		nAt = 0;
		csAttribs.Empty();
		csAttribName = _CSTR(xml.GetAttribName( nAt ));
		while ( ! csAttribName.IsEmpty() )
		{
			csAttribs += _CSTR(xml.GetAttrib( csAttribName ));
			++nAt;
			csAttribName = _CSTR(xml.GetAttribName( nAt ));
		}
		xml.OutOfElem();
	}
	int nAttribNavTime = TimeStop();
	if ( nAttribCreateTime > 400 || nAttribNavTime > 400 )
	{
		CString csAttribTime;
		csAttribTime.Format( _T("Attribute Performance Results: create %d search %d\r\n"), nAttribCreateTime, nAttribNavTime );
		m_csChecks += csAttribTime;
	}

	// SubDoc Test, use subdocument methods
	StartCheckZone( _T("SubDoc Test") );
	CString csTestAttrib = _T("<<&\"symb>>");
	CString csSubDoc, csChildSubDoc;
	xml.SetDoc( _T("") );
	Check( xml.AddElem(_T("ORDER")) );
	xml.AddChildElem( _T("ITEM") );
	xml.IntoElem();
	Check( xml.AddChildSubDoc(_T("<?xml version=\"1.0\"?>\r\n<ITEM/>\r\n")) );
	Check( xml.AddChildAttrib(_T("test"), csTestAttrib) );
	Check( xml.IntoElem() );
	Check( xml.AddChildElem(_T("NAME"), _T("carrots")) );
	Check( xml.AddChildElem(_T("QTY"), _T("1")) );
	csSubDoc = _CSTR(xml.GetSubDoc());
	Check( xml.OutOfElem() );
	csChildSubDoc = _CSTR(xml.GetChildSubDoc());
	Check( csSubDoc == csChildSubDoc );
	// Set xml2 from xml subdocument and modify
	Check( xml2.SetDoc(_CSTR(xml.GetChildSubDoc())) );
	Check( xml2.FindElem() );
	Check( xml2.SetAttrib(_T("subtest"), csTestAttrib) );
	Check( xml2.SetAttrib(_T("test"), _T("")) );
	Check( xml2.FindChildElem(_T("QTY")) );
	Check( xml2.RemoveChildElem() );
	csSubDoc = _CSTR(xml2.GetDoc());
#if ! defined( MARKUP_MSXML )
	// MSXML: Invalid subdocument causes first-chance exception
	// It works, but this #ifdef avoids alarming us with the Debug output
	Check( ! xml.AddChildSubDoc(_T("invalidsub<doc>")) );
#endif
	Check( xml.AddChildSubDoc(csSubDoc) );
	Check( xml.IntoElem() );
	Check( xml.RemoveElem() );
	Check( xml.AddSubDoc(csSubDoc) );
	Check( _CSTR(xml.GetAttrib(_T("subtest"))) == csTestAttrib );
	Check( xml.OutOfElem() );
	Check( xml.InsertChildSubDoc(csSubDoc) );
	xml.ResetChildPos();
	Check( xml.InsertChildSubDoc(csSubDoc) );
	xml.IntoElem();
	xml.FindChildElem();
	Check( xml.GetChildData() == _T("carrots") );
	// Brannan Test: subdocument with no children getting flagged as empty in 7.0
	xml.ResetChildPos();
	xml.FindElem();
	xml.FindChildElem( _T("QTY") );
	xml.AddChildSubDoc( _CSTR(xml.GetChildSubDoc()) );
	Check( xml.GetChildData() == _T("1") );

	// Comments Test, make sure it bypasses declaration, DTD, and comments
	StartCheckZone( _T("Comments Test") );
	CString csPTDoc =
		_T("<?xml version=\"1.0\"?>\n")
		_T("<!DOCTYPE PARSETEST [\n")
		_T("<!ELEMENT PARSETEST (ITEM*)>\n")
		_T("<!ATTLIST PARSETEST v CDATA \"\" s CDATA \"\">\n")
		_T("<!ELEMENT ITEM ANY>\n")

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产婷婷色一区二区三区| 成人免费视频一区二区| 欧美在线视频全部完| 亚洲综合在线电影| 欧美丝袜丝交足nylons图片| 洋洋成人永久网站入口| 欧美日韩日日骚| 美女诱惑一区二区| 久久久久久久久久久久久女国产乱| 国产美女娇喘av呻吟久久| 亚洲成在人线在线播放| 91精品国产免费久久综合| 麻豆国产欧美一区二区三区| 欧美国产成人精品| 色综合久久久网| 免费黄网站欧美| 亚洲国产高清aⅴ视频| 色悠悠久久综合| 蜜桃一区二区三区在线观看| 国产视频一区在线观看| 色域天天综合网| 九九久久精品视频| 中文字幕一区日韩精品欧美| 精品视频一区三区九区| 国产在线精品一区在线观看麻豆| 国产精品盗摄一区二区三区| 欧美日韩精品免费观看视频 | 蓝色福利精品导航| 欧美激情一区二区三区四区| 在线观看亚洲一区| 国产精品一区二区在线播放| 亚洲精品伦理在线| 亚洲精品一区二区三区99| 色综合天天做天天爱| 亚洲欧洲精品成人久久奇米网| 色妹子一区二区| 国产原创一区二区| 亚洲尤物视频在线| 国产欧美精品在线观看| 欧美久久一区二区| 成人av在线一区二区三区| 日韩影视精彩在线| 亚洲欧洲性图库| 久久久亚洲欧洲日产国码αv| 色婷婷久久综合| 国产91精品一区二区麻豆网站| 亚洲国产日日夜夜| 亚洲欧洲三级电影| 久久亚洲精精品中文字幕早川悠里| 日本久久电影网| 国产 日韩 欧美大片| 免费国产亚洲视频| 亚洲成人综合网站| 亚洲激情网站免费观看| 日本一二三四高清不卡| 欧美精品一区二区三区久久久| 欧美日韩一区久久| 在线精品视频免费播放| 91无套直看片红桃| 成人激情小说乱人伦| 国产一区二区三区香蕉| 看国产成人h片视频| 肉丝袜脚交视频一区二区| 亚洲精品成人精品456| 中文字幕欧美一区| 亚洲欧洲日韩av| 中文字幕欧美国产| 国产精品天干天干在观线| 久久久久国产精品人| xf在线a精品一区二区视频网站| 国产精品美女久久久久久| 久久综合久色欧美综合狠狠| 欧美日韩aaaaaa| 欧美日韩一区成人| 色香色香欲天天天影视综合网| 亚洲成在线观看| 午夜久久电影网| 亚洲国产精品久久久久秋霞影院| 国产欧美日韩不卡免费| 26uuu欧美日本| 欧美精品高清视频| 欧美视频中文一区二区三区在线观看| 国产69精品久久久久777| 蜜臀av在线播放一区二区三区| 亚洲第一二三四区| 亚洲午夜精品一区二区三区他趣| 亚洲私人影院在线观看| 久久夜色精品国产欧美乱极品| 日韩一区二区视频在线观看| 欧美嫩在线观看| 欧美日韩精品福利| 欧美精品久久天天躁| 欧美日韩一区二区在线观看视频| 欧洲国内综合视频| 欧美性猛片aaaaaaa做受| 91免费看`日韩一区二区| 色综合久久久网| 欧美午夜在线一二页| 欧美日韩视频在线第一区| 在线播放国产精品二区一二区四区| 欧美伊人精品成人久久综合97| 欧美性猛交xxxxxxxx| 久久66热偷产精品| www.性欧美| 91高清在线观看| 欧美日本一区二区在线观看| 91原创在线视频| 色偷偷成人一区二区三区91 | 亚洲一区二区美女| 日韩黄色小视频| 亚洲国产裸拍裸体视频在线观看乱了| 日韩av电影天堂| 国产一区二区不卡在线| 成人久久18免费网站麻豆 | 欧美美女bb生活片| 日韩欧美电影一二三| 26uuu精品一区二区在线观看| 国产午夜精品一区二区三区嫩草| 一区二区中文字幕在线| 亚洲一区二区影院| 久久国产精品一区二区| 国产**成人网毛片九色| av中文字幕亚洲| 91精品啪在线观看国产60岁| 国产视频亚洲色图| 国产精品久久久久7777按摩| 亚洲午夜精品网| 国产一区二区三区电影在线观看| 99久久99久久精品免费观看 | 日本成人在线电影网| 国产精品综合av一区二区国产馆| av中文字幕在线不卡| 欧美久久久久久久久中文字幕| 久久综合色8888| 一区二区三区精品视频| 精品一区二区三区在线视频| 丰满白嫩尤物一区二区| 在线影视一区二区三区| 精品久久久久香蕉网| 亚洲麻豆国产自偷在线| 免费成人在线影院| 99re成人精品视频| 欧美mv和日韩mv的网站| 国产目拍亚洲精品99久久精品| 天堂va蜜桃一区二区三区| 成人午夜免费av| 在线观看日韩电影| 国产欧美精品一区aⅴ影院 | 91色在线porny| 欧美日韩在线直播| 亚洲精品美国一| 成人午夜碰碰视频| 日韩精品中文字幕在线不卡尤物| 国产精品美女视频| 国产成人av电影在线观看| 欧美三级中文字幕| 一区二区三区欧美视频| 岛国av在线一区| 精品处破学生在线二十三| 亚洲国产精品影院| 91在线码无精品| 国产精品电影一区二区| 国产福利一区二区三区视频在线| 欧美人动与zoxxxx乱| 亚洲免费观看在线视频| 成人午夜视频在线| 2020国产精品| 国产福利精品导航| 久久久噜噜噜久噜久久综合| 五月天精品一区二区三区| 色哟哟亚洲精品| 亚洲日本va在线观看| 床上的激情91.| 亚洲色图制服诱惑 | 26uuu亚洲综合色| 三级在线观看一区二区| 欧美色手机在线观看| 一区二区三区四区亚洲| 在线观看视频欧美| 亚洲一线二线三线视频| 欧美性受xxxx黑人xyx性爽| 一色桃子久久精品亚洲| www.亚洲人| 中文字幕在线不卡国产视频| 色婷婷国产精品| 亚洲人xxxx| 欧美色精品在线视频| 亚洲国产精品久久人人爱蜜臀| 色av综合在线| 亚洲精品欧美综合四区| 欧美一区二区精品| 久久精品国产99国产| 亚洲精品在线三区| 国产二区国产一区在线观看| 国产三级精品视频| 国产69精品久久久久777| 国产精品对白交换视频| 欧洲精品一区二区三区在线观看| 亚洲综合色网站| 91麻豆精品国产自产在线|