亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > XML > 正文

C#來創(chuàng)建和讀取XML文檔

2024-09-05 20:55:44
字體:
供稿:網(wǎng)友
擴(kuò)展標(biāo)記語言xml(extensible markup language),是由w3c組織制定的。做為用于替代html語言的一種新型的標(biāo)記語言,xml內(nèi)部有著很多基本標(biāo)準(zhǔn),xml就是通過與這些相關(guān)標(biāo)準(zhǔn)地結(jié)合,應(yīng)用于科學(xué)計算、電子出版、多媒體制作和電子商務(wù)的。c#作為一種新型的程序語言,是.net框架的一個重要組成部分,他和xml的關(guān)系頗深。本文就從一個方面來探討一下這二者的關(guān)系。即:看用c#如何來創(chuàng)建和讀取xml文檔。

一. 本文程序設(shè)計和運行的軟件環(huán)境:

(一).微軟公司視窗2000服務(wù)器版

(二)..net framework sdk beta 2

二. c#創(chuàng)建xml文檔:

在本文中我們來介紹一下用c#創(chuàng)建xml文檔的二種方法,這二種方法各有千秋,第一種創(chuàng)建起來更靈活,第二種創(chuàng)建起來更方便。

(一).c#創(chuàng)建xml文檔的第一種方法:

這一種方法是按照按照xml的結(jié)構(gòu)一步一步的構(gòu)建xml文檔。c#構(gòu)建xml文檔通過.net framework sdk中的命名空間"system.xml"中封裝的各種類來實現(xiàn)的。下面就按照一個xml典型文檔結(jié)構(gòu)來介紹一下。

(1).首先要創(chuàng)建一個空的xml文檔:

在命名空間"system.xml"中有一個類"xmldocument",c#通過這個類來描述xml文檔。下面是用c#創(chuàng)建一個xml文檔。

xmldoc = new system.xml.xmldocument ( ) ;

(2).在xml的文檔的最頭部加入xml的聲明段落:

利用"xmldocument"類中的 "createnode" 方法可以創(chuàng)建一個指定類型的xml節(jié)點,"createnode" 方法的調(diào)用方法總共有三種,在本文中使用的其一般的方法,具體語法如下:

xmldocument.createnode method ( xmlnodetype , string , string )

然后在利用"xmldocument"類中的"appendchild"方法在xml文檔中加入此節(jié)點,用c#在xml文檔中加入聲明段落實現(xiàn)的語句如下:

xmlnode = xmldoc.createnode ( xmlnodetype.xmldeclaration , "" , "" ) ;
xmldoc.appendchild ( xmlnode ) ;


(3).為xml文檔加入元素(element):

加入數(shù)據(jù)內(nèi)容是通過元素,在"xmldocument"類中提供了二個方法:"createelement"和"createtextnode"。其中第一個方法是在xml中創(chuàng)建一個元素,另外一個方法是為創(chuàng)建的元素指定文本值。下面是為上面創(chuàng)建的xml文檔加入一個根元素。

xmlelem = xmldoc.createelement ( "" , "root" , "" ) ;
xmltext = xmldoc.createtextnode ( "root text" ) ;
注釋:其中"xmlelem"是創(chuàng)建的"xmlelement"對象,"xmltext"是"xmltext"對象

有了創(chuàng)建一個xml元素的例子,就可以根據(jù)xml文檔中數(shù)據(jù)的不同的結(jié)構(gòu)來創(chuàng)建其他的數(shù)據(jù)了。

(二).c#創(chuàng)建xml文檔的第一種方法的源程序代碼(no1.cs):

using system ;
  using system.xml ;
   class mainclass
   {
    xmldocument xmldoc ;
    xmlnode xmlnode ;
    xmlelement xmlelem ;
    xmlelement xmlelem2 ;
    xmltext xmltext ;
    static void main ( string [ ] args )
    {
     mainclass app = new mainclass ( ) ;
    }
    public mainclass ( )
    {
     xmldoc = new xmldocument ( ) ;
     //加入xml的聲明段落
     xmlnode = xmldoc.createnode ( xmlnodetype.xmldeclaration , "" , "" ) ;
     xmldoc.appendchild ( xmlnode ) ;
     //加入一個根元素
     xmlelem = xmldoc.createelement ( "" , "root" , "" ) ;
     xmltext = xmldoc.createtextnode ( "root text" ) ;
     xmlelem.appendchild ( xmltext ) ;
     xmldoc.appendchild ( xmlelem ) ;
     //加入另外一個元素
     xmlelem2 = xmldoc.createelement ("sampleelement" ) ;
     xmlelem2 = xmldoc.createelement ( "" , "sampleelement" , "" ) ;
     xmltext = xmldoc.createtextnode ( "the text of the sample element" ) ;
     xmlelem2.appendchild ( xmltext ) ;
     xmldoc.childnodes.item(1).appendchild ( xmlelem2 ) ;
     //保存創(chuàng)建好的xml文檔
     try
     {
      xmldoc.save ( "c://data.xml" ) ; 
   }
   catch ( exception e )
     {
      //顯示錯誤信息
      console.writeline ( e.message ) ;
     }
     console.readline ( ) ;
    }
   }


(三).c#創(chuàng)建xml文檔的第二種方法:

在介紹完第一種方法以后,我想每一個讀者都感覺到用c#創(chuàng)建xml文檔是一項比較煩雜的工作了,因為不僅要了解創(chuàng)建的知識,還要了解文檔的結(jié)構(gòu),這樣創(chuàng)建的過程就是一步一步的了。下面就來介紹一種比較容易的創(chuàng)建方法,這種創(chuàng)建方法是直接定義xml文檔,然后把他保存到文件中就可以了。

(1).創(chuàng)建一個xml文檔:

這一點和第一種方法一樣,在這里就不介紹了。

(2).通過"xmldocument"類中的"loadxml"方法,直接在文檔中加入想要加入的xml數(shù)據(jù)。當(dāng)然你加入的xml應(yīng)該符合xml的語法,不然產(chǎn)生的文件也沒有什么意義了。下面是加入xml的具體代碼:

    doc.loadxml ( 
        "<employees> " +
                  "<no1>" +
                  "<name>ma jin hu</name>" +
                  "<zip> 239000 </zip>" +
                  "<address>feng huang street</address>" +
                  "<city>chu zhou city</city>" +
                  "<state> anhui </state>" +
                  "</no1>" +
                  "<no2>" +
                  "<name>wang tian</name>" +
                  "<zip> 239000 </zip>" +
                  "<address>lang ya street</address>" +
                  "<city>he fei city</city>" +
                  "<state> anhui </state>" +
                  "</no2>" +
                  "<no3>" +
                  "<name>zou wen biao</name>" +
                  "<zip> 100000 </zip>" +
                  "<address>sai di street</address>" +
                  "<city>bei jin city</city>" +
                  "<state>bei jin</state>" +
                  "</no3>" +
                  "</employees>" ) ;   


(3).把保存xml文檔到文件中:

保存xml文檔是通過"xmldocument"類中的"save"方法來實現(xiàn)的。具體如下:

doc.save ( "data.xml" ) ;

(四).c#創(chuàng)建xml文檔的第二種方法的源程序代碼(no2.cs):

using system ;
  using system.io ;
  using system.xml;
  public class sample
  {
    public static void main ( )
    {
      //創(chuàng)建一個xmldocument對象
      xmldocument doc = new xmldocument ( ) ;
      doc.loadxml ( 
"<employees> " +
                  "<no1>" +
                  "<name>ma jin hu</name>" +
                  "<zip> 239000 </zip>" +
                  "<address>feng huang street</address>" +
                  "<city>chu zhou city</city>" +
                  "<state> anhui </state>" +
                  "</no1>" +
                  "<no2>" +
                  "<name>wang tian</name>" +
                  "<zip> 239000 </zip>" +
                  "<address>lang ya street</address>" +
                  "<city>he fei city</city>" +
                  "<state> anhui </state>" +
                  "</no2>" +
                  "<no3>" +
                  "<name>zou wen biao</name>" +
                  "<zip> 100000 </zip>" +
                  "<address>sai di street</address>" +
                  "<city>bei jin city</city>" +
                  "<state>bei jin</state>" +
                  "</no3>" +
                  "</employees>" ) ;
      //保存這個文檔到文件中
      doc.save ( "data.xml" ) ;
    }
  }  


用c#創(chuàng)建xml文檔的方法其實有很多,在這里只是選取了二種比較典型的方法加以介紹。但無論那一種方法,c#在創(chuàng)建xml的時候都需要用到.net framework sdk。所以了解并掌握這個類庫中的內(nèi)容對于c#編程是十分必要的,在下面我們將來介紹一下用c#讀取xml中的數(shù)據(jù),通過這你會發(fā)現(xiàn),c#又是利用這個類庫實現(xiàn)這個功能的。

三.c#讀取xml文件:

本節(jié)將用c#來讀取本文中用第二種方法創(chuàng)建的xml文件,編譯no2.cs后,執(zhí)行將產(chǎn)生"data.xml"文件,其中"data.xml"文件的數(shù)據(jù)結(jié)構(gòu)如下:

<employees>
  <no1>
    <name>ma jin hu</name>
      <zip> 239000 </zip>
      <address>feng huang street</address>
      <city>chu zhou city</city>
      <state> anhui </state>
    </no1>
    <no2>
      <name>wang tian</name>
      <zip> 239000 </zip>
      <address>lang ya street</address>
      <city>he fei city</city>
      <state> anhui </state>
    </no2>
    <no3>
      <name>zou wen biao</name>
      <zip> 100000 </zip>
      <address>sai di street</address>
      <city>bei jin city</city>
      <state>bei jin</state>
    </no3>
  </employees>


在下面的內(nèi)容中,我們利用c#讀取此文件,并用listview組件按照數(shù)據(jù)結(jié)構(gòu)給顯示出來。下圖是讀取此xml后的運行界面:

圖01:c#讀取xml后的運行界面



要正確讀取xml數(shù)據(jù),首先要了解xml的結(jié)構(gòu)。根據(jù)上面的xml文件,可以知道此xml包含三個數(shù)據(jù),下面就來看如何讀取這三條數(shù)據(jù):

(1).裝入xml文件,形成數(shù)據(jù)流:

通過創(chuàng)建一個"xmldocument"對象,然后利用"load"方法,可以把xml文件裝入,具體如下:

xmldocument doc = new xmldocument ( ) ;
  // 裝入指定的xml文檔
  doc.load ( "c://data.xml" ) ;
(2).讀取xml文件,并顯示出來:

讀取xml是通過創(chuàng)建"xmlnodereader"對象來實現(xiàn)的,"xmlnodereader"對象主要是用來可以讀取xml的節(jié)點數(shù)據(jù)。在本文的程序中使用到了一些"xmlnodereader"的屬性,譬如"nodetype"屬性,用來判斷讀取得節(jié)點是什么類型。"value"是節(jié)點的值。下面是讀取xml文件并顯示在listview中的實現(xiàn)代碼,其中l(wèi)istview1是已經(jīng)創(chuàng)建listview組件:

while ( reader.read ( ) ) 
{
//判斷當(dāng)前讀取得節(jié)點類型
switch ( reader.nodetype )
  {
  case xmlnodetype.element :
  s = reader.name ;
  break ;
  case xmlnodetype.text :
  if ( s.equals ( "name" ) )
  myitem = listview1.items.add ( reader.value ) ;
  else
  myitem.subitems.add ( reader.value ) ;
  break ;
  } 
}


四.c#讀取xml的文件的源程序代碼(read.cs):

在了解了上面的內(nèi)容以后,可以得到用c#讀取指定xml文件的完整代碼,具體如下:

      using system ;
  using system.drawing ;
  using system.collections ;
  using system.componentmodel ;
  using system.windows.forms ;
  using system.data ;
  using system.xml ;
    public class form1 : form
  {
  private button button1 ;
  private listview listview1 ;
  private system.componentmodel.container components = null ;
 
  public form1 ( )
  {
  //初始化窗體中的各個組件
  initializecomponent ( ) ;
  }
  //清除程序中使用過的資源
  protected override void dispose ( bool disposing )
  {
  if ( disposing )
  {
  if ( components != null ) 
{
components.dispose ( ) ;
  }
  }
  base.dispose ( disposing ) ;
  }
  private void initializecomponent ( )
  {
  button1 = new button ( ) ;
  listview1 = new listview ( ) ;
  suspendlayout ( ) ;
 
  button1.anchor = ( ( anchorstyles.bottom | anchorstyles.left ) 
| anchorstyles.right ) ;
  button1.location = new point ( 240 , 296 ) ;
  button1.name = "button1" ;
  button1.size = new size ( 112 , 37 ) ;
  button1.tabindex = 0 ;
  button1.text = "讀取xml文檔" ;
  button1.click += new system.eventhandler ( button1_click ) ;
 
  listview1.anchor = ( ( ( anchorstyles.top | anchorstyles.bottom ) 
| anchorstyles.left ) 
| anchorstyles.right ) ;
  listview1.gridlines = true ;
  listview1.location = new point ( 10 , 9 ) ;
  listview1.name = "listview1" ;
  listview1.size = new size ( 623 , 269 ) ;
  listview1.tabindex = 1 ;
  listview1.view = view.details ;
 
  this.autoscalebasesize = new size ( 6 , 14 ) ;
  this.clientsize = new size ( 608 , 348 ) ;
  this.controls.add ( listview1 );
  this.controls.add ( button1 );
  this.name = "form1" ;
  this.startposition = formstartposition.centerscreen ;
  this.text = "用c#來讀取xml文檔" ;
  this.resumelayout ( false ) ;
 
  }
  static void main ( ) 
{
application.run ( new form1 ( ) ) ;
  }
 
  private void button1_click ( object sender , system.eventargs e )
  {
  listviewitem myitem = new listviewitem ( ) ;
  // 構(gòu)建listview組件
  listview1.columns.clear ( ) ; 
listview1.items.clear ( ) ;
  listview1.columns.add ( "name" , 80 , horizontalalignment.left ) ; 
listview1.columns.add ( "zip" , 80 , horizontalalignment.left ) ; 
listview1.columns.add ( "address" , 80 , horizontalalignment.left ) ; 
listview1.columns.add ( "city" , 80 , horizontalalignment.left ) ; 
listview1.columns.add ( "state" , 80 , horizontalalignment.left ) ; 
xmlnodereader reader = null ;
 
  try
  {
  string s = "" ;
  xmldocument doc = new xmldocument ( ) ;
  // 裝入指定的xml文檔
  doc.load ( "c://data.xml" ) ;
  // 設(shè)定xmlnodereader對象來打開xml文件
  reader = new xmlnodereader ( doc ) ;
  // 讀取xml文件中的數(shù)據(jù),并顯示出來
  while ( reader.read ( ) ) 
{
//判斷當(dāng)前讀取得節(jié)點類型
switch ( reader.nodetype )
  {
  case xmlnodetype.element :
  s = reader.name ;
  break ;
  case xmlnodetype.text :
  if ( s.equals ( "name" ) )
  myitem = listview1.items.add ( reader.value ) ;
  else
  myitem.subitems.add ( reader.value ) ;
  break ;
  } 
}
}
finally
{
//清除打開的數(shù)據(jù)流
if ( reader != null )
  reader.close ( ) ;
  }
  }
  }  


五.總結(jié):

c#和xml的淵源是很深的,本文只是從一個側(cè)面反映了二者關(guān)系的密切程度。在.net framework sdk中存在許多可以直接操作xml的類庫,掌握這些類庫的使用方法,對用c#開發(fā)和xml相關(guān)程序是十分必要的。
菜鳥學(xué)堂:
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产亚洲一区二区三区不卡| 亚洲av无一区二区三区久久| 91麻豆视频在线观看| 欧美日韩三级一区| 日韩三级视频在线看| 天天射综合影视| 懂色aⅴ精品一区二区三区蜜月| 日本电影一区二区| 你微笑时很美电视剧整集高清不卡| 日日摸夜夜添夜夜添精品视频| 亚洲国产aⅴ精品一区二区| 欧美国产精品一区二区三区| 久久国产综合视频| 91精品国产沙发| 国产精品青草综合久久久久99| 亚洲动漫在线观看| 国产老熟女伦老熟妇露脸| 色综合天天狠天天透天天伊人| 每日更新在线观看av| 午夜91在线| 国产chinese中国hdxxxx| 一个人看免费www视频有多爽| 日韩高清不卡在线| 亚洲精品国产精品国自产在线| 免费在线观看a视频| 亚洲aaaaaaa| 最近2019年好看中文字幕视频| 成人黄色在线观看视频| 久久精品成人欧美大片免费| 欧州一区二区| 国产一级黄色片免费| 日本理论片午伦夜理片在线观看| 亚洲日本伊人| 136av视频导航| av在线女优影院| 97人摸人人澡人人人超一碰| 国产精品蜜芽在线观看| 五月天在线免费视频| 136国产福利精品导航网址| 欧美久久久久久久久久久久| 久操视频在线免费观看| 日韩午夜在线观看视频| 91成人高清| 中国xxxx自拍视频| 日韩av网站大全| 久久全国免费久久青青小草| 51国产偷自视频区视频| 成人私拍视频| 成人网视频在线观看| 99久久婷婷国产综合精品| 电影网一区二区| 国产精品一区在线播放| 老司机凹凸av亚洲导航| 91精品视频观看| 欧美色资源站| 婷婷视频一区二区三区| 欧美另类激情| 日韩av大片在线观看| 国内精品小视频在线观看| 嫩草视频免费在线观看| 亚洲第一精品福利| 久久精品亚洲欧美日韩精品中文字幕| 欧美午夜丰满在线18影院| 在线观看中文字幕2021| 欧美一区欧美二区| 香蕉网在线视频| 亚洲精品乱码久久久久久蜜桃动漫| 在线国产一区二区三区| 亚洲精品成a人在线观看| 青柠在线影院观看日本| 91麻豆国产福利在线观看宅福利| 精品成人在线观看| 99久久久久久99| 亚洲自拍偷拍另类| 亚洲影院高清在线| 久久久久国产一区| 欧美午夜精品一区二区蜜桃| 日韩激情视频在线| 久久激情电影| 任我爽精品视频在线播放| 久久天天做天天爱综合色| 8x海外华人永久免费日韩内陆视频| 玖玖玖视频精品| 久草电影在线| 小早川怜子久久精品中文字幕| 日本一本在线观看| 亚洲成年人电影在线观看| 国产秀色在线www免费观看| 视频一区中文| 日韩在线第七页| av电影一区二区三区| 蜜桃久久精品乱码一区二区| 中日韩高清电影网| 欧美日韩在线亚洲一区蜜芽| 欧美变态tickling挠脚心| 亚洲尤物视频网| 一区二区在线免费视频| 国产一区二区日韩精品| 激情综合网五月| 免费看成年人视频| 欧洲亚洲一区二区三区四区五区| 日本三级网站在线观看| 四虎影视永久免费在线观看一区二区三区| 黄色网页网址在线免费| 成年人在线免费| 日本黄色中文字幕| 一区二区三区四区在线看| 婷婷久久久久久| 日韩精品一级中文字幕精品视频免费观看| 91资源在线播放| 国产99视频在线观看| 日本青青草视频| 国产精品一国产精品最新章节| 欧美bbbxxxxx| 国产91精品一区二区| 国产精品亚发布| 风间由美一区| 国产又粗又猛视频免费| 国产精品88久久久久久| 日本福利一区二区| 精品日韩在线观看| 久久精品国产成人一区二区三区| 三上亚洲一区二区| 乱一区二区三区在线播放| 久久精品国产第一区二区三区最新章节| 欧美日本亚洲| 国精产品一品二品国精品69xx| 五级黄高潮片90分钟视频| 亚洲在线免费观看| 久久99精品波多结衣一区| 成人在线观看免费高清| 中文字幕一区二区三区免费视频| 国精品**一区二区三区在线蜜桃| 日本精品在线免费观看| 青青视频免费在线| 亚洲国产精品一区二区www| 精品精品国产高清a毛片牛牛| 一本高清dvd不卡在线观看| 国产黄色录像视频| 91在线短视频| 婷婷久久一区| 精品国产一区二区三区成人影院| 久久国产精品久久久久久久久久| 国产一级片在线播放| 亚洲伊人精品酒店| 国产日韩欧美一区在线| 久久av红桃一区二区小说| 亚洲最新免费视频| 欧美日韩中文字幕一区二区三区| 欧美日韩激情一区二区| 国产精品精品软件男同| 国产偷自视频区视频一区二区| 人人爽人人爽人人片| 久久福利网址导航| 国产精品va在线| 日本精品一区在线| 精品日韩av一区二区| 日韩大片免费观看| 国产精品zjzjzj在线观看| 中文字幕乱码日本亚洲一区二区| 成人性生交大片免费看中文网站| 亚洲自拍都市欧美小说| 欧美成人午夜激情| 亚洲精品aaaa| 天天影视天天精品| 中国xxxx性xxxx产国| 国产精品久久久久久人| 国产不卡在线观看视频| 国产淫片在线观看| 午夜免费看毛片| 狠狠色丁香久久婷婷综合丁香| 日本黄色网址大全| 精品国产一区探花在线观看| 免费永久网站黄欧美| 人人人妻人人澡人人爽欧美一区| 成人羞羞视频播放网站| 国产成人综合在线| 一级黄色在线视频| 亚洲精品国产一区二区三区四区在线| 1024视频在线| 一色屋成人免费精品网| 国产偷激情在线| 成人区精品一区二区| 4444欧美成人kkkk| 久久五月天婷婷| 天堂在线观看| 欧美激情2020午夜免费观看| 日韩精品伦理第一区| 色噜噜狠狠色综合中国| 日本一区二区三区四区视频| 久久久久久久久久久久久女国产乱| 欧美日韩在线观看不卡| 色av吧综合网| 婷婷亚洲精品| 国产又色又爽又高潮免费| 美日韩在线视频| 人妻精品久久久久中文| 精品动漫一区| 一区二区美女视频| 亚洲成人在线播放| 四虎精品成人免费观看| 国产亚洲成人精品| 亚洲精品免费看| 久久精品国产精品亚洲综合| 成人动漫在线视频| 日韩在线观看成人| 亚洲国产精品国自产拍久久| 欧美一级高清片| 可以在线看的av网站| 伊人影院中文字幕| 久久精品99久久久久久久久| 日本久久久精品视频| 久久97精品久久久久久久不卡| 97久久夜色精品国产九色| 免费看成人午夜电影| 欧美777四色影| 日韩国产高清在线| 91久久国语露脸精品国产高跟| 奇米影视一区二区三区小说| 国产精品久久久亚洲一区| 午夜久久久久久久久久一区二区| 国产拍在线视频| av成人在线网站| 欧美一二区视频| 美女国产一区二区三区| 欧美性生活大片视频| 美女被羞羞网站| 超碰影院在线观看| 久久er这里只有精品| 青青草草视频| 成人羞羞国产免费网站| 黄色小网站91| 在线观看岛国片| 国产亚洲成人av| 高清hd写真福利在线播放| 国产精品久久久久久久久动漫| 天天摸天天做天天爽| 爱情电影网av一区二区| 18禁网站免费无遮挡无码中文| 亚洲精品久久在线| 中文字幕丰满乱子伦无码专区| 免费污视频在线观看| 欧美在线视频全部完| 欧美激情国产精品免费| 国产精品.www| 91日韩视频在线观看| 内射国产内射夫妻免费频道| 欧美日韩在线看片| 在线观看中文字幕av| 一二三区在线视频| 夜夜夜操操操| 成人午夜在线播放| 色综合久久88色综合天天| 欧美激情一区在线| av先锋下载| 久久人人爽人人爽人人片av免费| 国产一级黄色录像| 精品一区二区三区中文字幕在线| 欧美黄色成人| 狠狠久久亚洲欧美| 中文字幕亚洲精品在线观看| 日韩激情视频在线播放| 久草久草久草| 亚洲丁香日韩| 亚洲色图一二三区| 日本一区二区动态图| 亚洲欧洲一区二区三区久久| 国产精品免费在线免费| 免费看黄色av| 国精品日韩欧美一区二区三区| 欧美中文字幕在线观看视频| 91香蕉视频污在线观看| 992tv成人免费视频| 99热只有这里有精品| 国产一区二区三区中文| 91亚洲国产成人久久精品网站| 亚洲成av人片一区二区密柚| 久久免费小视频| 2021国产在线| 欧美www在线观看| 777奇米888色狠狠俺也去| 91国偷自产一区二区三区观看| 日韩久久久久久久久久| 精品99久久久久成人网站免费| 免费在线播放第一区高清av| 男男gay无套免费视频欧美| 国产成人无码av| 亚洲小说欧美另类婷婷| 青春草在线观看视频| 天堂一区二区三区四区| 亚洲黄色一区二区| 亚洲国产毛片aaaaa无费看| 日本电影一区二区三区| 国产一区二区三区福利| 免费观看视频www| 亚洲电影中文字幕| 六月丁香在线视频| 日本美女高清在线观看免费| 国产一区二区三区在线看| 8v天堂国产在线一区二区| 黄在线免费看| 欧美在线一区二区三区四| 日本人体一区二区| 有坂深雪av一区二区精品| 久久国产生活片100| 黄色在线观看免费| 欧美激情视频一区| 国产精品久久久久久影院8一贰佰| 在线精品国产| 91久久精品国产91性色69| 91免费福利视频| 欧美成人精品一区| 深夜影院在线观看| 日韩在线观看免费高清完整版| 亚洲黄色小视频在线观看| 日韩在线视频二区| 26uuu日韩精品一区二区| 成人精品视频在线| 中文字幕精品在线视频| 国产黄色一区二区三区| 欧美日韩免费一区二区三区视频| 国产传媒欧美日韩| 99国产精品久久| 风流少妇一区二区三区91| 亚洲蜜臀av乱码久久精品蜜桃| 国产色综合久久| 大地资源网3页在线观看| 欧美激情三级免费|