精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談談對象和XML文件的轉換

開發
本文介紹三種方式操作XML,普通的XDocument的API操作,方便的XmlSerializer對象序列化及反序列化操作,加密XML對象序列化操作。

很多時候,我們開發程序都需要使用到對象的XML序列化和反序列化,對象的XML序列化和反序列化,既可以使用XML對象(XmlDocument )進行操作,也可以使用XmlSerializer進行操作,兩個各有優點,就操作性而已,我傾向于使用后者來操作XML。

本文介紹三種方式操作XML,普通的XDocument的API操作,方便的XmlSerializer對象序列化及反序列化操作,加密XML對象序列化操作。

1、普通的XML對象操作,利用XML對象(XmlDocument )。

一個典型的利用XmlDocument對象操作XML的例子代碼如下。

  1. public static void RunSnippet()  
  2.     {  
  3.         XmlDocument xmldoc = new XmlDocument ( ) ;  
  4.     //加入XML的聲明段落  
  5.     XmlNode xmlnode = xmldoc.CreateNode ( XmlNodeType.XmlDeclaration , "" , "" ) ;  
  6.     xmldoc.AppendChild (xmlnode ) ;  
  7.     //加入一個根元素  
  8.     XmlElement xmlelem = xmldoc.CreateElement ( "" , "ROOT" , "" ) ;  
  9.     XmlText xmltext = xmldoc.CreateTextNode ( "Root Text" ) ;  
  10.     xmlelem.AppendChild ( xmltext ) ;  
  11.     xmldoc.AppendChild ( xmlelem ) ;  
  12.     //加入另外一個元素  
  13.     XmlElement xmlelem2 = xmldoc.CreateElement ("SampleElement" ) ;  
  14.     xmlelem2 = xmldoc.CreateElement ( "" , "SampleElement" , "" ) ;  
  15.     xmltext = xmldoc.CreateTextNode ( "The text of the sample element" ) ;  
  16.     xmlelem2.AppendChild ( xmltext ) ;  
  17.     xmldoc.ChildNodes.Item(1).AppendChild ( xmlelem2 ) ;  
  18.     //保存創建好的XML文檔  
  19.     try 
  20.     {  
  21.       xmldoc.Save ( "c:\\data.xml" ) ;  
  22.     }  
  23.     catch ( Exception e )  
  24.     {  
  25.       //顯示錯誤信息  
  26.       Console.WriteLine ( e.Message ) ;  
  27.     }  
  28.     Console.ReadLine ( ) ;  
  29.     } 

得到的輸出結果如下所示。

  1. <?xml version="1.0"?>  
  2. <ROOT>Root Text  
  3.     <SampleElement>The text of the sample element</SampleElement>  
  4. </ROOT> 

#p#

2、使用XmlSerializer進行XML操作

先提供兩個對象的序列化和反序列化的封裝函數,如下所示。

  1. /// <summary>  
  2.         /// 對象序列化XML到文件中  
  3.         /// </summary>  
  4.         /// <param name="path">文件路徑</param>  
  5.         /// <param name="obj">對象</param>  
  6.         /// <param name="type">對象類型</param>  
  7.         private bool XmlSerialize(string path, object obj, Type type)  
  8.         {  
  9.             XmlSerializerNamespaces ns = new XmlSerializerNamespaces();  
  10.             ns.Add("""");  
  11.  
  12.             try 
  13.             {  
  14.                 //如果文件目錄不存在,那么創建目錄  
  15.                 if (!File.Exists(path))  
  16.                 {  
  17.                     FileInfo fi = new FileInfo(path);  
  18.                     if (!fi.Directory.Exists)  
  19.                     {  
  20.                         Directory.CreateDirectory(fi.Directory.FullName);  
  21.                     }  
  22.                 }  
  23.  
  24.                 using (Stream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))  
  25.                 {  
  26.                     XmlSerializer format = new XmlSerializer(type);  
  27.  
  28.                     format.Serialize(stream, obj, ns);  
  29.                     stream.Close();  
  30.                 }  
  31.  
  32.                 return true;  
  33.             }  
  34.             catch (Exception ex)  
  35.             {  
  36.                 Console.WriteLine(ex.Message);  
  37.                 return false;  
  38.             }  
  39.         }  
  40.  
  41.         /// <summary>  
  42.         /// XML反序列化  
  43.         /// </summary>  
  44.         /// <param name="path">文件路徑</param>  
  45.         /// <param name="type">對象類型</param>  
  46.         /// <returns></returns>  
  47.         private object XmlDeserialize(string path, Type type)  
  48.         {  
  49.             try 
  50.             {  
  51.                 using (Stream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))  
  52.                 {  
  53.                     XmlSerializer formatter = new XmlSerializer(type);  
  54.                     stream.Seek(0, SeekOrigin.Begin);  
  55.                     object obj = formatter.Deserialize(stream);  
  56.                     stream.Close();  
  57.                     return obj;  
  58.                 }  
  59.             }  
  60.             catch 
  61.             {  
  62.                 return null;  
  63.             }  
  64.         } 

注意其中代碼       

  1. XmlSerializerNamespaces ns = new XmlSerializerNamespaces();  
  2. ns.Add("", ""); 

是把默認的xmlns命名空間多余的內容去掉,這樣得到比較干凈的XML。

在使用的時候,我們需要定義好對象的實體,這樣才能給予對象進行操作,定義的實體類如下所示。

  1. [Serializable]  
  2.     public class UserInfo  
  3.     {                  
  4.         public string ID { get; set; }  
  5.         public string UserNo{ get; set; }  
  6.         public string UserName { get; set; }  
  7.         public string Sex { get; set; }  
  8.         public string Birthday { get; set; }  
  9.     }  
  10.  
  11.     [Serializable]  
  12.     public class DataOfUser  
  13.     {  
  14.         [XmlElement(ElementName = "m_User")]  
  15.         public List<UserInfo> list = new List<UserInfo>();  
  16.     } 

調用序列化函數的代碼例子如下所示

  1. private void btnUserNormal_Click(object sender, EventArgs e)  
  2.         {  
  3.             DataOfUser obj = new DataOfUser();  
  4.             UserInfo user = new UserInfo();  
  5.             user.ID=Guid.NewGuid().ToString();  
  6.             user.Sex = "男";  
  7.             user.UserName = "張三";  
  8.             user.UserNo = "20010001";  
  9.             user.Birthday = "1999-1-1";  
  10.             obj.list.Add(user);  
  11.  
  12.             user = new UserInfo();  
  13.             user.ID = Guid.NewGuid().ToString();  
  14.             user.Sex = "女";  
  15.             user.UserName = "李氏";  
  16.             user.UserNo = "20020001";  
  17.             user.Birthday = "1998-1-1";  
  18.             obj.list.Add(user);  
  19.  
  20.             try 
  21.             {  
  22.                 XmlSerialize("C:\\User.xml", obj, obj.GetType());  
  23.                 MessageUtil.ShowTips("Ok");  
  24.             }  
  25.             catch (Exception ex)  
  26.             {  
  27.                 MessageUtil.ShowError(ex.Message);  
  28.             }  
  29.         } 

這樣得到的XML內容如下所示。

  1. <?xml version="1.0"?> 
  2. <DataOfUser> 
  3.   <m_User> 
  4.     <ID>f8a8b323-5c56-4c21-9ddf-1cd30f78dfca</ID> 
  5.     <UserNo>20010001</UserNo> 
  6.     <UserName>張三</UserName> 
  7.     <Sex></Sex> 
  8.     <Birthday>1999-1-1</Birthday> 
  9.   </m_User> 
  10.   <m_User> 
  11.     <ID>bbb36378-ec27-4e20-ad4b-2d2dc7e142e4</ID> 
  12.     <UserNo>20020001</UserNo> 
  13.     <UserName>李氏</UserName> 
  14.     <Sex></Sex> 
  15.     <Birthday>1998-1-1</Birthday> 
  16.   </m_User> 
  17. </DataOfUser> 

反序列化的操作也比較簡單,不再贅述。

#p#

3)把對象實例化到XML中并進行加密處理

首先我們定義兩個序列化加密、解碼并反序列化的函數如下所示。

  1. /// <summary> 
  2.         /// XML序列化并加密  
  3.         /// </summary> 
  4.         /// <param name="path">文件路徑</param> 
  5.         /// <param name="obj">對象</param> 
  6.         /// <param name="type">對象類型</param> 
  7.         /// <returns></returns> 
  8.         private bool XmlSerializeEncrypt(string path, object obj, Type type)  
  9.         {  
  10.             XmlSerializerNamespaces ns = new XmlSerializerNamespaces();  
  11.             ns.Add("", "");  
  12.  
  13.             try  
  14.             {  
  15.                 if (!File.Exists(path))  
  16.                 {  
  17.                     FileInfo fi = new FileInfo(path);  
  18.                     if (!fi.Directory.Exists)  
  19.                     {  
  20.                         Directory.CreateDirectory(fi.Directory.FullName);  
  21.                     }  
  22.                 }  
  23.  
  24.                 using (Stream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))  
  25.                 {         
  26.                     string content = "";  
  27.                     using(MemoryStream ms = new MemoryStream())  
  28.                     {  
  29.                         XmlSerializer format = new XmlSerializer(type);  
  30.                         format.Serialize(ms, obj, ns);  
  31.                         ms.Seek(0, 0);  
  32.                         content = Encoding.UTF8.GetString(ms.ToArray());  
  33.                     }  
  34.  
  35.                     string encrypt = EncodeHelper.EncryptString(content);  
  36.                     byte[] bytes = Encoding.UTF8.GetBytes(encrypt);  
  37.                     stream.Write(bytes, 0, bytes.Length);  
  38.                     stream.Close();  
  39.                 }  
  40.                   
  41.  
  42.                 return true;  
  43.             }  
  44.             catch (Exception ex)  
  45.             {  
  46.                 Console.WriteLine(ex.Message);  
  47.                 return false;  
  48.             }  
  49.         }  
  50.  
  51.         /// <summary> 
  52.         /// 解密并進行XML反序列化  
  53.         /// </summary> 
  54.         /// <param name="path">文件路徑</param> 
  55.         /// <param name="type">對象類型</param> 
  56.         /// <returns></returns> 
  57.         private object XmlDeserializeDecrypt(string path, Type type)  
  58.         {  
  59.             try  
  60.             {  
  61.                 string encrypt = File.ReadAllText(path, Encoding.UTF8);  
  62.                 string content = EncodeHelper.DecryptString(encrypt, true);  
  63.                 byte[] bytes = Encoding.UTF8.GetBytes(content);  
  64.                 using (MemoryStream stream = new MemoryStream(bytes))  
  65.                 {                    
  66.                     XmlSerializer formatter = new XmlSerializer(type);  
  67.                       
  68.                     stream.Seek(0, SeekOrigin.Begin);  
  69.                     object obj = formatter.Deserialize(stream);  
  70.                     stream.Close();  
  71.                     return obj;  
  72.                 }  
  73.             }  
  74.             catch(Exception ex)  
  75.             {  
  76.                 Console.WriteLine(ex.Message);  
  77.                 return null;  
  78.             }  
  79.         } 

這樣函數定義好后,調用和前面沒有加密的差不多,如下所示。

  1. private void btnUserEncrypt_Click(object sender, EventArgs e)  
  2.         {  
  3.             DataOfUser obj = new DataOfUser();  
  4.             UserInfo user = new UserInfo();  
  5.             user.ID = Guid.NewGuid().ToString();  
  6.             user.Sex = "男";  
  7.             user.UserName = "張三";  
  8.             user.UserNo = "20010001";  
  9.             user.Birthday = "1999-1-1";  
  10.             obj.list.Add(user);  
  11.  
  12.             user = new UserInfo();  
  13.             user.ID = Guid.NewGuid().ToString();  
  14.             user.Sex = "女";  
  15.             user.UserName = "李氏";  
  16.             user.UserNo = "20020001";  
  17.             user.Birthday = "1998-1-1";  
  18.             obj.list.Add(user);  
  19.  
  20.             try  
  21.             {  
  22.                 XmlSerializeEncrypt("C:\\User-Encrypt.xml", obj, obj.GetType());  
  23.                 MessageUtil.ShowTips("Ok");  
  24.             }  
  25.             catch (Exception ex)  
  26.             {  
  27.                 MessageUtil.ShowError(ex.Message);  
  28.             }  
  29.         }  
  30.  
  31.         private void btnUserDecrypt_Click(object sender, EventArgs e)  
  32.         {  
  33.             string file = FileDialogHelper.OpenFile();  
  34.             if (!string.IsNullOrEmpty(file))  
  35.             {  
  36.                 DataOfUser info = XmlDeserializeDecrypt(file, typeof(DataOfUser)) as DataOfUser;  
  37.                 if (info != null)  
  38.                 {  
  39.                     MessageUtil.ShowTips("OK");  
  40.                 }  
  41.             }  
  42.         } 
 

原文鏈接:http://www.cnblogs.com/wuhuacong/archive/2012/06/29/2569388.html

責任編輯:張偉 來源: 伍華聰的博客
相關推薦

2009-08-13 09:33:07

JavaBean到XM

2009-09-14 19:11:20

XML和Java Be

2009-06-23 14:22:00

DOM文檔XML文件Java

2011-04-22 14:01:58

Artech類型轉換

2020-10-22 08:01:52

XMLJSON轉換

2016-10-11 15:42:08

2021-01-12 08:20:51

AndroidActivity系統

2009-11-06 16:35:56

WCF Stream對

2009-09-08 16:55:01

Linq實現XML轉換

2010-09-16 14:37:54

DataSetXML

2024-09-03 10:06:43

JavaMap項目

2012-03-26 11:32:45

Java

2017-11-09 15:38:26

OpenRTB 3.0演化

2016-09-09 12:51:23

PhxSQL原則局限性

2009-08-18 16:30:41

C# 操作XML

2021-01-18 08:52:28

Java對象多態

2012-04-16 15:08:33

2016-07-01 16:13:13

AWSLambda

2011-03-30 15:16:27

VB.NET.NETXML

2010-09-01 08:57:27

jQueryDOM對象
點贊
收藏

51CTO技術棧公眾號

国产区在线观看| 中文字幕 自拍偷拍| 加勒比久久高清| 在线观看区一区二| 蜜臀在线免费观看| 五月婷婷六月激情| 精品一区二区三区的国产在线播放| 另类美女黄大片| 波多野结衣一本| 国产一区二区三区精品在线观看| 欧美日韩激情视频8区| 亚洲一区bb| 污污的视频网站在线观看| 老司机免费视频一区二区| 久久久久久久影院| 内射毛片内射国产夫妻| 国产欧美啪啪| 欧美日韩视频第一区| 精品无码国产一区二区三区av| 国产青青草在线| 成人免费av在线| 成人免费福利视频| 日本黄色一级视频| 伊人狠狠色j香婷婷综合| 中文字幕亚洲综合| 国产全是老熟女太爽了| 亚洲国产aⅴ精品一区二区| 91久久一区二区| 日本中文字幕亚洲| av在线免费观看网址| 国产婷婷色一区二区三区四区 | 久久久久无码国产精品| 清纯唯美日韩| 亚洲人成绝费网站色www| 深夜视频在线观看| 精品国产亚洲一区二区三区在线 | 国产精品色哟哟网站| 久草精品电影| 丁香花免费高清完整在线播放| 久久国产成人午夜av影院| 国产成人高潮免费观看精品| 日韩精品成人在线| 黄色亚洲精品| 欧美国产日韩一区二区在线观看| av片在线免费看| 国产调教一区二区三区| 亚洲美女福利视频网站| 日b视频在线观看| 97一区二区国产好的精华液| 日韩美一区二区三区| 99九九精品视频| 中文成人在线| 91精品欧美综合在线观看最新| 男女污污的视频| 台湾佬成人网| 91久久精品一区二区二区| aaaaaa亚洲| 黑人巨大精品| 在线一区二区观看| 中文字幕国内自拍| 国产精品美女午夜爽爽| 欧美日韩国产乱码电影| 中文字幕22页| 精品91福利视频| 日韩欧美中文字幕精品| 95视频在线观看| 婷婷亚洲成人| 国产亚洲视频在线观看| 香蕉久久久久久久| 亚洲情侣在线| 国内精品中文字幕| 黄色av一级片| 免费久久精品视频| 亚洲www视频| 亚洲欧美激情国产综合久久久| www.亚洲色图.com| 欧美黄色直播| 顶级网黄在线播放| 亚洲一区二区欧美日韩| av动漫在线观看| 国产精品亚洲成在人线| 日韩一区二区影院| 久久久久国产精品区片区无码| 欧美禁忌电影网| 日韩视频在线观看免费| 久久久久亚洲av无码专区| 亚洲综合三区| 成人伊人精品色xxxx视频| 蜜臀久久99精品久久久| 久久久国产精华| 在线观看污视频| 中文一区一区三区高中清不卡免费| 在线免费观看一区| 亚洲乱妇老熟女爽到高潮的片 | 在线观看日韩羞羞视频| 国精一区二区三区| 一本大道久久a久久综合| 女人高潮一级片| 老司机aⅴ在线精品导航 | 天天爽天天爽天天爽| 国自产拍偷拍福利精品免费一| 欧美中文在线字幕| 99久久免费国产精精品| 久久久久国产免费免费| 在线观看av的网址| 欧美日韩精品免费观看视完整| 欧美一区二区国产| 精品免费国产| 91女主播在线观看| 黑人极品videos精品欧美裸| 中文字幕丰满乱码| 美女精品一区最新中文字幕一区二区三区 | 99国产精品一区二区| 97久久精品国产| 99久久国产热无码精品免费| 久久久精品国产免大香伊 | 久久久国产亚洲精品| 91精品在线观| 川上优的av在线一区二区| 亚洲成人午夜影院| 亚洲高清av一区二区三区| 国产探花一区在线观看| 91成人免费观看网站| 高清乱码毛片入口| 亚洲色图制服丝袜| 亚洲最大综合网| 欧美**vk| 欧洲亚洲免费在线| 日韩中文字幕免费观看| 亚洲精品免费看| 久久6免费视频| 日韩成人精品一区| 日韩av免费在线看| 午夜小视频免费| 亚洲一二三四在线| 日本xxxx免费| 欧美日韩国产在线一区| 51国偷自产一区二区三区的来源 | 亚洲精品一区二区三区四区| 中文字幕亚洲不卡| www.com操| 欧美日韩在线播放视频| 日本午夜在线亚洲.国产| 天天摸夜夜添狠狠添婷婷| 亚洲一区二区三区中文字幕在线| 久久aaaa片一区二区| 91tv官网精品成人亚洲| 成人一区二区电影| 91最新在线视频| 日韩一区二区三区高清免费看看| 四虎精品免费视频| 国产一区二区三区不卡在线观看| 懂色av一区二区三区四区五区| 香蕉久久一区| 久久中文久久字幕| 亚洲av色香蕉一区二区三区| 亚洲国产人成综合网站| a天堂视频在线观看| 国产精品亚洲产品| 欧美下载看逼逼| 国产成人福利夜色影视| 日韩网站免费观看| 99草在线视频| 亚洲一区二区三区四区中文字幕| youjizz.com日本| 亚洲人成毛片在线播放女女| 久久久福利视频| 日本少妇一区| www.久久色.com| 亚洲精品国产片| 福利微拍一区二区| 黄色片在线观看免费| 国内成人精品2018免费看| 欧美亚洲色图视频| 男男gay无套免费视频欧美| 国产精品入口夜色视频大尺度 | 中文字幕国产高清| 很黄很黄激情成人| 欧美日韩精品免费看| www一区二区三区| 亚洲3p在线观看| 成人在线播放视频| 日韩视频国产视频| 波多野结衣绝顶大高潮| 亚洲桃色在线一区| 特级西西人体4444xxxx| 日韩电影在线一区二区三区| 色乱码一区二区三区熟女| 欧美性生活一级片| 国产综合久久久久| 日本蜜桃在线观看视频| 日韩中文视频免费在线观看| 丰满肥臀噗嗤啊x99av| 在线免费观看日本欧美| 美女视频黄免费| 国产日产精品1区| 久久久无码人妻精品无码| 欧美专区在线| 美女av免费观看| 精品香蕉视频| 成人黄色在线免费观看| 国产韩日精品| 97色伦亚洲国产| 蜜桃视频在线观看免费视频网站www| 日韩网站在线看片你懂的| 无码人妻丰满熟妇精品| 亚洲午夜免费电影| 小嫩苞一区二区三区| 久久先锋影音av| 好吊操视频这里只有精品| 蜜桃视频在线观看一区| 亚洲中文字幕无码专区| 欧美成人有码| 亚洲午夜高清视频| 欧美日韩播放| 韩国一区二区三区美女美女秀| 国产精品一区免费在线 | 国产丝袜在线视频| 日本韩国视频一区二区| 日本一二三区视频| 亚洲免费观看高清| 影音先锋男人看片资源| 久久婷婷久久一区二区三区| 在线播放av网址| 国产原创一区二区| 爱爱爱爱免费视频| 美女黄网久久| 人妻夜夜添夜夜无码av| 欧美另类视频| 日本xxxxx18| 天天射综合网视频| 亚洲精品日韩成人| 男男gay无套免费视频欧美| 麻豆av一区二区| 日韩高清影视在线观看| 精品久久久久久一区| h视频久久久| 国产精品成人一区二区三区| 欧美午夜在线播放| 亚洲自拍偷拍福利| 国产精品亚洲欧美一级在线 | 国产又粗又黄又爽视频| 欧美三级中文字幕| 在线观看免费高清视频| 在线免费观看一区| 中文字幕欧美人妻精品| 欧美午夜宅男影院| 曰批又黄又爽免费视频| 欧美视频在线一区| 亚洲一线在线观看| 欧美日韩国产乱码电影| 国产美女裸体无遮挡免费视频| 69堂国产成人免费视频| 国产乱码精品一区二区三区精东| 欧美丰满嫩嫩电影| 国产精品呻吟久久| 在线成人av影院| 国产aⅴ爽av久久久久成人| 日韩免费在线观看| 日本免费一区视频| 日韩电影免费在线观看中文字幕| 手机福利小视频在线播放| 亚洲天堂av高清| 在线观看麻豆蜜桃| 米奇精品一区二区三区在线观看| 日本h片在线| 久久久久久久久亚洲| 一区二区三区短视频| 国产精品第二页| 国产精品va视频| 国产一区二区三区黄| 中文有码一区| 在线视频不卡一区二区三区| 午夜性色一区二区三区免费视频| 日韩精品视频在线观看视频| 亚洲欧美网站| 中文字幕免费高清在线| 国产成人综合自拍| 激情综合丁香五月| 国产精品久久久久婷婷二区次| 成人在线观看小视频| 精品国产户外野外| 久久国产香蕉视频| 日韩欧美一区在线观看| 少妇性bbb搡bbb爽爽爽欧美| 中文字幕欧美日韩va免费视频| 国产激情在线观看| 青青草成人在线| 国产精品一区免费在线| 欧美国产一区二区在线| 亚洲国产一区二区在线观看| 精品这里只有精品| 激情深爱一区二区| 久久无码人妻精品一区二区三区| 国产精品视频观看| xxxxxx国产| 欧美日韩免费高清一区色橹橹 | 国产亚洲a∨片在线观看| 直接在线观看的三级网址| 欧美在线视频观看| 日本高清久久| 日韩一本精品| 日韩视频一区| 国产无遮挡猛进猛出免费软件| 成人av在线影院| 老熟妇高潮一区二区三区| 欧美日韩在线看| 亚洲精品久久久蜜桃动漫| 在线成人激情视频| 国产v日韩v欧美v| 91久久精品www人人做人人爽| 国产精品一区二区av日韩在线| 黄色a级片免费看| 久久国产福利国产秒拍| 丰满少妇高潮一区二区| 亚洲1区2区3区视频| 国产精品亚洲欧美在线播放| 在线成人一区二区| 涩涩视频在线| 国产精品污www一区二区三区| 99久久婷婷| 亚洲第一中文av| 久久久久国产免费免费| 91美女免费看| 亚洲国产成人精品久久| 尤物视频在线看| 成人免费观看a| 日韩中文在线电影| 黄色一级免费大片| 久久你懂得1024| 制服.丝袜.亚洲.中文.综合懂色| 精品国产污污免费网站入口 | 亚洲精品一二三| 国产又粗又猛视频| 色系列之999| 国产精品久久乐| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 狂野欧美一区| 免费黄色片网站| 一本大道久久精品懂色aⅴ| 美女毛片在线看| 日韩免费观看网站| 欧美激情在线精品一区二区三区| 精品一区二区中文字幕| 99麻豆久久久国产精品免费| 日韩欧美中文字幕一区二区| 亚洲福利视频专区| 成人ssswww在线播放| 久久久婷婷一区二区三区不卡| av不卡在线看| 欧美丰满少妇人妻精品| 欧美日韩一区二区在线| 国产小视频在线观看| 国产精品久久激情| 欧美激情偷拍自拍| 日本特黄在线观看| 一区二区三区小说| 人妻精品一区二区三区| 国产91精品久久久久| 欧美精品第一区| 日韩一区二区三区不卡视频| 国产精品久久福利| 国产精品呻吟久久| 久久久久久久久久婷婷| 欧美人妖在线| 91pony九色| 亚洲一区二区精品3399| 青青草娱乐在线| 国产男人精品视频| 欧美日本一区| 亚洲第一页av| 5858s免费视频成人| 欧美日韩经典丝袜| 免费电影一区| 久久69国产一区二区蜜臀| 妺妺窝人体色www婷婷| 日韩电影中文字幕一区| 久久久成人av毛片免费观看| 中文字幕人成一区| av爱爱亚洲一区| 欧美高清69hd| 欧美激情欧美狂野欧美精品 | 成人午夜视频免费看| 精品不卡一区二区| 播播国产欧美激情| 美腿丝袜亚洲图片| 亚洲欧美日韩一级| 亚洲午夜羞羞片| 在线免费av网站| 久99久视频| 国产久卡久卡久卡久卡视频精品| 日韩精品一区二区三| 色噜噜亚洲精品中文字幕| av不卡一区| 欧美美女一级片| 精品人伦一区二区三区蜜桃网站 | 国产69精品99久久久久久宅男| 国产一区二区三区四区| 日本人dh亚洲人ⅹxx| 日本韩国一区二区三区视频|