久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Xpath語法格式總結(jié)

瀏覽:328日期:2022-06-04 10:37:50

經(jīng)常在工作中會(huì)使用到XPath的相關(guān)知識(shí),但每次總會(huì)在一些關(guān)鍵的地方不記得或不太清楚,所以免不了每次總要查一些零碎的知識(shí),感覺即很煩又浪費(fèi)時(shí)間,所以對(duì)XPath歸納及總結(jié)一下。

在這篇文章中你將能學(xué)習(xí)到:

XPath簡(jiǎn)介

XPath 路徑表達(dá)式詳解

XPath在DOM,XSLT及XQuery中的應(yīng)用

XPath簡(jiǎn)介

XPath是W3C的一個(gè)標(biāo)準(zhǔn)。它最主要的目的是為了在XML1.0或XML1.1文檔節(jié)點(diǎn)樹中定位節(jié)點(diǎn)所設(shè)計(jì)。目前有XPath1.0和XPath2.0兩個(gè)版本。其中Xpath1.0是1999年成為W3C標(biāo)準(zhǔn),而XPath2.0標(biāo)準(zhǔn)的確立是在2007年。W3C關(guān)于XPath的英文詳細(xì)文檔請(qǐng)見:http://www.w3.org/TR/xpath20/ 。

XPath是一種表達(dá)式語言,它的返回值可能是節(jié)點(diǎn),節(jié)點(diǎn)集合,原子值,以及節(jié)點(diǎn)和原子值的混合等。XPath2.0是XPath1.0的超集。它是對(duì)XPath1.0的擴(kuò)展,它可以支持更加豐富的數(shù)據(jù)類型,并且XPath2.0保持了對(duì)XPath1.0的相對(duì)很好的向后兼容性,幾乎所有的XPath2.0的返回結(jié)果都可以和XPath1.0保持一樣。另外XPath2.0也是XSLT2.0和XQuery1.0的用于查詢定位節(jié)點(diǎn)的主表達(dá)式語言。XQuery1.0是對(duì)XPath2.0的擴(kuò)展。關(guān)于在XSLT和XQuery中使用XPath表達(dá)式定位節(jié)點(diǎn)的知識(shí)在后面的實(shí)例中會(huì)有所介紹。

在學(xué)習(xí)XPath之前你應(yīng)該對(duì)XML的節(jié)點(diǎn),元素,屬性,原子值(文本),處理指令,注釋,根節(jié)點(diǎn)(文檔節(jié)點(diǎn)),命名空間以及對(duì)節(jié)點(diǎn)間的關(guān)系如:父(Parent),子(Children),兄弟(Sibling),先輩(Ancestor),后代(Descendant)等概念有所了解。這里不在說明。

XPath路徑表達(dá)式

在本小節(jié)下面的內(nèi)容中你將可以學(xué)習(xí)到:

路徑表達(dá)式語法

相對(duì)/絕對(duì)路徑

表達(dá)式上下文

謂詞(篩選表達(dá)式)及軸的概念

運(yùn)算符及特殊字符

常用表達(dá)式實(shí)例

函數(shù)及說明

這里給出一個(gè)實(shí)例Xml文件。下面的說明及實(shí)例都是基于該XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by Administrator -->
<?xml-stylesheet type="text/xsl" href="messages.xsl" rel="external nofollow" ?>
<messages>
 <message id="1">
 <sender>gukaitong@gmail.com</sender>
 <to>anonymous@gmail.com
 <group name="IT">
 <address>111@gmail.com</address>
 <address>222@gmail.com</address>
 <address>aaa@gmail.com</address>
 <address>bbb@gmail.com</address>
 <address>ccc@gmail.com</address>
 </group>
 </to>
 <subject>This is a sample</subject>
 <datetime date="2008-12-11" time="12:00:00" formatted="12/11/2008 12:00AM">2008-12-11T12:00:00Z</datetime>
 <body>
 Are you interested in? 
 <attachments>
 <attachment id="1">
  <message id="0">
  <sender>anonymous@gmail.com</sender>
  <to>gukaitong@gmail.com</to>
  <body>
We strongly recommend the following books
  <books xmlns:amazon="http://www.amazon.com/books/schema">
  <amazon:book>
   <name>Professional C# 2008 </name>
   <country>USA</country>
   <price>37.79</price>
   <year>2007</year>
  </amazon:book>
  <amazon:book>
   <name>Microsoft Visual C# 2008 Step by Step </name>
   <country>USA</country>
   <price>26.39 </price>
   <year>2008</year>
  </amazon:book>
  <amazon:book>
   <name>C# in Depth</name>
   <country>USA</country>
   <price>29.69 </price>
   <year>2006</year>
  </amazon:book>
  <amazon:book>
   <name>Thinking in Java</name>
   <country>USA</country>
   <price>23.69 </price>
   <year>2004</year>
  </amazon:book>
  </books>
  </body>
  </message>
 </attachment>
 </attachments>
 </body>
 </message>
 <message id="2">
 <sender>333@gmail.com</sender>
 <to>444@gmail.com</to>
 <subject>No title</subject>
 <body/>
 </message>
</messages>

路徑表達(dá)式語法:

路徑 = 相對(duì)路徑 | 絕對(duì)路徑

XPath路徑表達(dá)式 = 步進(jìn)表達(dá)式 | 相對(duì)路徑 "/"步進(jìn)表達(dá)式。

步進(jìn)表達(dá)式=軸 節(jié)點(diǎn)測(cè)試 謂詞

說明:

其中軸表示步進(jìn)表達(dá)式選擇的節(jié)點(diǎn)和當(dāng)前上下文節(jié)點(diǎn)間的樹狀關(guān)系(層次關(guān)系),節(jié)點(diǎn)測(cè)試指定步進(jìn)表達(dá)式選擇的節(jié)點(diǎn)名稱擴(kuò)展名,謂詞即相當(dāng)于過濾表達(dá)式以進(jìn)一步過濾細(xì)化節(jié)點(diǎn)集。

謂詞可以是0個(gè)或多個(gè)。多個(gè)多個(gè)謂詞用邏輯操作符and, or連接。取邏輯非用not()函數(shù)。

請(qǐng)看一個(gè)典型的XPath查詢表達(dá)式:/messages/message//child::node()[@id=0],其中/messages/message是路徑(絕對(duì)路徑以"/"開始),child::是軸表示在子節(jié)點(diǎn)下選擇,node()是節(jié)點(diǎn)測(cè)試表示選擇所有的節(jié)點(diǎn)。[@id=0]是謂詞,表示選擇所有有屬性id并且值為0的節(jié)點(diǎn)。

相對(duì)路徑與絕對(duì)路徑:

如果"/"處在XPath表達(dá)式開頭則表示文檔根元素,(表達(dá)式中間作為分隔符用以分割每一個(gè)步進(jìn)表達(dá)式)

如:/messages/message/subject是一種絕對(duì)路徑表示法,它表明是從文檔根開始查找節(jié)點(diǎn)。假設(shè)當(dāng)前節(jié)點(diǎn)是在第一個(gè)message節(jié)點(diǎn)【/messages/message[1]】,則路徑表達(dá)式subject(路徑前沒有"/")這種表示法稱為相對(duì)路徑,表明從當(dāng)前節(jié)點(diǎn)開始查找。具體請(qǐng)見下面所述的"表達(dá)式上下文"。

表達(dá)式上下文(Context):

上下文其實(shí)表示一種環(huán)境。以明確當(dāng)前XPath路徑表達(dá)式處在什么樣的環(huán)境下執(zhí)行。例如同樣一個(gè)路徑表達(dá)式處在對(duì)根節(jié)點(diǎn)操作的環(huán)境和處在對(duì)某一個(gè)特定子節(jié)點(diǎn)操作的環(huán)境下執(zhí)行所獲得的結(jié)果可能是完全不一樣的。也就是說XPath路徑表達(dá)式計(jì)算結(jié)果取決于它所處的上下文。

XPath上下文基本有以下幾種:

當(dāng)前節(jié)點(diǎn)(./):

如./sender表示選擇當(dāng)前節(jié)點(diǎn)下的sender節(jié)點(diǎn)集合(等同于下面所講的"特定元素",如:sender)
父節(jié)點(diǎn)(../):

如../sender表示選擇當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)下的sender節(jié)點(diǎn)集合

根元素(/):

如/messages表示選擇從文檔根節(jié)點(diǎn)下的messages節(jié)點(diǎn)集合.

根節(jié)點(diǎn)(/*):

這里的*是代表所有節(jié)點(diǎn),但是根元素只有一個(gè),所以這里表示根節(jié)點(diǎn)。/*的返回結(jié)果和/messages返回的結(jié)果一樣都是

messages節(jié)點(diǎn)。

遞歸下降(//):

如當(dāng)前上下文是messages節(jié)點(diǎn)。則//sender將返回以下結(jié)果:

/messages//sender :
<sender>gkt1980@gmail.com</sender>
<sender>111@gmail.com</sender>
<sender>333@gmail.com</sender>
/messages/message[1]//sender:
<sender>gkt1980@gmail.com</sender>
<sender>111@gmail.com</sender>

我們可以看出XPath表達(dá)式返回的結(jié)果是:從當(dāng)前節(jié)點(diǎn)開始遞歸步進(jìn)搜索當(dāng)前節(jié)點(diǎn)下的所有子節(jié)點(diǎn)找到滿足條件的節(jié)點(diǎn)集。

特定元素

如sender:表示選擇當(dāng)前節(jié)點(diǎn)下的sender節(jié)點(diǎn)集合,等同于(./sender)

注意:在執(zhí)行XPath時(shí)一定要注意上下文。即當(dāng)前是在哪個(gè)節(jié)點(diǎn)下執(zhí)行XPath表達(dá)式。這在XMLDOM中很重要。如:在XMLDOM中的selectNodes,selectSingleNode方法的參數(shù)都是一個(gè)XPath表達(dá)式,此時(shí)這個(gè)XPath表達(dá)式的執(zhí)行上下文就是調(diào)用這個(gè)方法的節(jié)點(diǎn)及它所在的環(huán)境。更多信息請(qǐng)參見:http://www.w3.org/TR/xpath20/

謂詞(篩選表達(dá)式)及軸的概念:

XPath的謂詞即篩選表達(dá)式,類似于SQL的where子句.

軸名稱

結(jié)果

ancestor

選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)

ancestor-or-self

選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身

attribute

選取當(dāng)前節(jié)點(diǎn)的所有屬性

child

選取當(dāng)前節(jié)點(diǎn)的所有子元素。

descendant

選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)。

descendant-or-self

選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身。

following

選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)。

namespace

選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)

parent

選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。

preceding

直到所有這個(gè)節(jié)點(diǎn)的父輩節(jié)點(diǎn),順序選擇每個(gè)父輩節(jié)點(diǎn)前的所有同級(jí)節(jié)點(diǎn)

preceding-sibling

選取當(dāng)前節(jié)點(diǎn)之前的所有同級(jí)節(jié)點(diǎn)。

self

選取當(dāng)前節(jié)點(diǎn)。

運(yùn)算符及特殊字符:

運(yùn)算符/特殊字符

說明

/

此路徑運(yùn)算符出現(xiàn)在模式開頭時(shí),表示應(yīng)從根節(jié)點(diǎn)選擇。

//

從當(dāng)前節(jié)點(diǎn)開始遞歸下降,此路徑運(yùn)算符出現(xiàn)在模式開頭時(shí),表示應(yīng)從根節(jié)點(diǎn)遞歸下降。

.

當(dāng)前上下文。

..

當(dāng)前上下文節(jié)點(diǎn)父級(jí)。

*

通配符;選擇所有元素節(jié)點(diǎn)與元素名無關(guān)。(不包括文本,注釋,指令等節(jié)點(diǎn),如果也要包含這些節(jié)點(diǎn)請(qǐng)用node()函數(shù))

@

屬性名的前綴。

@*

選擇所有屬性,與名稱無關(guān)。

:

命名空間分隔符;將命名空間前綴與元素名或?qū)傩悦指簟?/p>

( )

括號(hào)運(yùn)算符(優(yōu)先級(jí)最高),強(qiáng)制運(yùn)算優(yōu)先級(jí)。

[ ]

應(yīng)用篩選模式(即謂詞,包括"過濾表達(dá)式"和"軸(向前/向后)")。

[ ]

下標(biāo)運(yùn)算符;用于在集合中編制索引。

|

兩個(gè)節(jié)點(diǎn)集合的聯(lián)合,如://messages/message/to | //messages/message/cc

-

減法。

div,

浮點(diǎn)除法。

and, or

邏輯運(yùn)算。

mod

求余。

not()

邏輯非

=

等于

!=

不等于

特殊比較運(yùn)算符

< 或者 &lt;

<= 或者 &lt;=

> 或者 &gt;

>= 或者 &gt;=

需要轉(zhuǎn)義的時(shí)候必須使用轉(zhuǎn)義的形式,如在XSLT中,而在XMLDOM的scripting中不需要轉(zhuǎn)義。

常用表達(dá)式實(shí)例:

/

Document Root文檔根.

/*

選擇文檔根下面的所有元素節(jié)點(diǎn),即根節(jié)點(diǎn)(XML文檔只有一個(gè)根節(jié)點(diǎn))

/node()

根元素下所有的節(jié)點(diǎn)(包括文本節(jié)點(diǎn),注釋節(jié)點(diǎn)等)

/text()

查找文檔根節(jié)點(diǎn)下的所有文本節(jié)點(diǎn)

/messages/message

messages節(jié)點(diǎn)下的所有message節(jié)點(diǎn)

/messages/message[1]

messages節(jié)點(diǎn)下的第一個(gè)message節(jié)點(diǎn)

/messages/message[1]/self::node()

第一個(gè)message節(jié)點(diǎn)(self軸表示自身,node()表示選擇所有節(jié)點(diǎn))

/messages/message[1]/node()

第一個(gè)message節(jié)點(diǎn)下的所有子節(jié)點(diǎn)

/messages/message[1]/*[last()]

第一個(gè)message節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)

/messages/message[1]/[last()]

Error,謂詞前必須是節(jié)點(diǎn)或節(jié)點(diǎn)集

/messages/message[1]/node()[last()]

第一個(gè)message節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)

/messages/message[1]/text()

第一個(gè)message節(jié)點(diǎn)的所有子節(jié)點(diǎn)

/messages/message[1]//text()

第一個(gè)message節(jié)點(diǎn)下遞歸下降查找所有的文本節(jié)點(diǎn)(無限深度)

/messages/message[1] /child::node()

/messages/message[1] /node()

/messages/message[position()=1]/node()

//message[@id=1] /node()

第一個(gè)message節(jié)點(diǎn)下的所有子節(jié)點(diǎn)

//message[@id=1] //child::node()

遞歸所有子節(jié)點(diǎn)(無限深度)

//message[position()=1]/node()

選擇id=1的message節(jié)點(diǎn)以及id=0的message節(jié)點(diǎn)

/messages/message[1] /parent::*

Messages節(jié)點(diǎn)

/messages/message[1]/body/attachments/parent::node()

/messages/message[1]/body/attachments/parent::* /messages/message[1]/body/attachments/..

attachments節(jié)點(diǎn)的父節(jié)點(diǎn)。父節(jié)點(diǎn)只有一個(gè),所以node()和* 返回結(jié)果一樣。

(..也表示父節(jié)點(diǎn). 表示自身節(jié)點(diǎn))

//message[@id=0]/ancestor::*

Ancestor軸表示所有的祖輩,父,祖父等。

向上遞歸

//message[@id=0]/ancestor-or-self::*

向上遞歸,包含自身

//message[@id=0]/ancestor::node()

對(duì)比使用*,多一個(gè)文檔根元素(Document root)

/messages/message[1]/descendant::node()

//messages/message[1]//node()

遞歸下降查找message節(jié)點(diǎn)的所有節(jié)點(diǎn)

/messages/message[1]/sender/following::*

查找第一個(gè)message節(jié)點(diǎn)的sender節(jié)點(diǎn)后的所有同級(jí)節(jié)點(diǎn),并對(duì)每一個(gè)同級(jí)節(jié)點(diǎn)遞歸向下查找。

//message[@id=1]/sender/following-sibling::*

查找id=1的message節(jié)點(diǎn)的sender節(jié)點(diǎn)的所有后續(xù)的同級(jí)節(jié)點(diǎn)。

//message[@id=1]/datetime/@date

查找id=1的message節(jié)點(diǎn)的datetime節(jié)點(diǎn)的date屬性

//message[@id=1]/datetime[@date]

//message/datetime[attribute::date]

查找id=1的message節(jié)點(diǎn)的所有含有date屬性的datetime節(jié)點(diǎn)

//message[datetime]

查找所有含有datetime節(jié)點(diǎn)的message節(jié)點(diǎn)

//message/datetime/attribute::*

//message/datetime/attribute::node()

//message/datetime/@*

返回message節(jié)點(diǎn)下datetime節(jié)點(diǎn)的所有屬性節(jié)點(diǎn)

//message/datetime[attribute::*]

//message/datetime[attribute::node()]

//message/datetime[@*]

//message/datetime[@node()]

選擇所有含有屬性的datetime節(jié)點(diǎn)

//attribute::*

選擇根節(jié)點(diǎn)下的所有屬性節(jié)點(diǎn)

//message[@id=0]/body/preceding::node()

順序選擇body節(jié)點(diǎn)所在節(jié)點(diǎn)前的所有同級(jí)節(jié)點(diǎn)。(查找順序?yàn)椋合日业絙ody節(jié)點(diǎn)的頂級(jí)節(jié)點(diǎn)(根節(jié)點(diǎn)),得到根節(jié)點(diǎn)標(biāo)簽前的所有同級(jí)節(jié)點(diǎn),執(zhí)行完成后繼續(xù)向下一級(jí),順序得到該節(jié)點(diǎn)標(biāo)簽前的所有同級(jí)節(jié)點(diǎn),依次類推。)

注意:查找同級(jí)節(jié)點(diǎn)是順序查找,而不是遞歸查找。

//message[@id=0]/body/preceding-sibling::node()

順序查找body標(biāo)簽前的所有同級(jí)節(jié)點(diǎn)。(和上例一個(gè)最大的區(qū)別是:不從最頂層開始到body節(jié)點(diǎn)逐層查找。我們可以理解成少了一個(gè)循環(huán),而只查找當(dāng)前節(jié)點(diǎn)前的同級(jí)節(jié)點(diǎn))

//message[@id=1]//*[namespace::amazon]

查找id=1的所有message節(jié)點(diǎn)下的所有命名空間為amazon的節(jié)點(diǎn)。

//namespace::*

文檔中的所有的命名空間節(jié)點(diǎn)。(包括默認(rèn)命名空間xmlns:xml)

//message[@id=0]//books/*[local-name()="book"]

選擇books下的所有的book節(jié)點(diǎn),

注意:由于book節(jié)點(diǎn)定義了命名空間<amazone:book>.若寫成//message[@id=0]//books/book則查找不出任何節(jié)點(diǎn)。

//message[@id=0]//books/*[local-name()="book" and namespace-uri()="http://www.amazon.com/books/schema"]

選擇books下的所有的book節(jié)點(diǎn),(節(jié)點(diǎn)名和命名空間都匹配)

//message[@id=0]//books/*[local-name()="book"][year>2006]

選擇year節(jié)點(diǎn)值>2006的book節(jié)點(diǎn)

//message[@id=0]//books/*[local-name()="book"][1]/year>2006

指示第一個(gè)book節(jié)點(diǎn)的year節(jié)點(diǎn)值是否大于2006.

返回xs:boolean: true

函數(shù)及說明:

值得欣喜的是XPath函數(shù)和XSLT,XQuery等共享函數(shù)庫(kù),函數(shù)庫(kù)為我們提供了功能豐富的各種函數(shù)的調(diào)用,我們也可以自定義自己的函數(shù)。這里不再對(duì)每個(gè)函數(shù)的用法逐一說明,中文的可以參考這個(gè)網(wǎng)站, https://www.jb51.net/w3school/xpath/index.htm

XPath在DOM,XSLT及XQuery中的應(yīng)用

DOM:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XPath Test</title>
</head>
<body>
<script language="javascript" type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("messages.xml");
xmlDoc.setProperty("SelectionLanguage", "XPath");
 var sPath = "/messages/message[1]//books/*[local-name()="book"]";
var bookNodes = xmlDoc.selectNodes(sPath);
document.write("<ul>");
for ( var i = 0; i < bookNodes.length; i++) {
document.write("<li>" + bookNodes[i].childNodes[0].text + "</li>");
}
document.write("</ul>");
</script>
</body>
</html>

注意:

我們?nèi)羰褂胣ew ActiveXObject("Microsoft.XMLDOM")則需要注意的是:因?yàn)樵缙诘腦MLDOM的SelectionLanguage屬性默認(rèn)是正則表達(dá)式,不是XPath語言。所以需要指定這樣一條語句xmlDoc.setProperty("SelectionLanguage", "XPath"); 以支持XPath查詢表達(dá)式。.

若沒有指定SelectionLanguage屬性值為XPath則要注意以下情況:

數(shù)組下標(biāo)從0開始(我們知道在XPath查詢表達(dá)式中數(shù)組下標(biāo)是從1開始的)不支持在XPath查詢表達(dá)式中使用XPath函數(shù)。

總結(jié)

以上就是本文關(guān)于Xpath語法格式總結(jié)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以參閱:MYSQL updatexml()函數(shù)報(bào)錯(cuò)注入解析、OGNL表達(dá)式基本語法與用法詳解、前端常見跨域解決方案(全)等,有什么問題可以隨時(shí)留言,歡迎大家討論交流。

標(biāo)簽: XML/RSS
相關(guān)文章:
主站蜘蛛池模板: 99国产精品99久久久久久 | 久久精品国产精品亚洲 | 亚洲一区中文字幕 | 91精品国产乱码久久久久久 | 在线日韩视频 | 中文字幕综合 | 欧美xxxx网站 | 亚洲高清视频在线观看 | 成人av影院 | 国产精品视频一区二区三区四 | 亚洲午夜在线 | 久久99国产精品 | 在线免费看a | 亚洲国产一区在线 | 日韩欧美国产网站 | 午夜社区| 一级黄色片视频 | 免费v片 | 久久精品久久久久电影 | 亚洲第一视频网站 | 日本久久久久久 | 天天色天天射天天操 | 污视频在线观看免费 | 久久综合久久综合久久综合 | 人人看人人干 | 综合激情久久 | 日韩中文字幕无码一区二区三区 | 欧美伦理电影一区二区 | 精品一区av | 国产精品自在线 | 超碰国产一区 | 国产精品高清在线 | 成人在线精品 | a级在线观看免费 | 免费观看一级视频 | 天天干天天爱天天 | 激情欧美一区二区三区中文字幕 | 奇米成人| 成人精品高清 | 精品中文字幕在线观看 | 亚洲精品乱码久久久久久国产主播 | 欧美一级片aaa | av黄色在线免费观看 | 久久精品亚洲精品国产欧美 | 久久精品国产清自在天天线 | 国精品产品区三区 | 欧美国产日本一区 | 欧美精品久久久久 | 国产美女一区二区 | 欧美在线一区二区 | 中文一区二区 | 久久九| 欧美成人午夜视频 | 欧美精品1 | 伊人免费视频 | 在线免费观看色视频 | 亚州综合| 国产精品色一区二区三区 | 日日干天天操 | 日韩在线成人 | 久久噜噜噜精品国产亚洲综合 | 97人人干| 欧美日韩成人在线观看 | 91夜夜操| 成人免费视频网站在线看 | 久久久久久久久国产精品 | 久久精品首页 | 欧美全黄| 亚洲高清在线 | 欧美一区二区在线 | 日韩一区二区三区在线 | 国产精品久久久久国产精品 | 全黄大全大色全免费大片 | 国产日韩欧美一区 | 国产精品久久久久久久久久 | 久久精品久久综合 | 91视频电影 | 夜夜操av| 欧美激情国产日韩精品一区18 | 超碰国产一区 | 北条麻妃国产九九九精品小说 | 久久综合久久综合久久 | 欧美a级在线观看 | 成人欧美| 性视频一区二区 | 综合久久综合 | 操人视频网站 | 国产做a爰片久久毛片a我的朋友 | 成人在线免费观看 | 亚洲毛片 | 精品综合 | 日韩国产欧美在线观看 | 欧美精品在线一区 | 国产美女久久 | 精品电影 | 成人欧美一区二区三区视频xxx | 美女国产精品 | 人人干天天操 | 欧美日韩在线精品 | 久久777| 天天综合网网欲色 | 午夜久久久 | 久久精品国产91精品亚洲高清 | 久久精品无码一区二区日韩av | 亚洲毛片在线观看 | www.99热这里只有精品 | 欧美日一区 | 成人区一区二区三区 | 中文字幕免费在线 | 欧美亚洲一 | 国产精品永久 | 精品一区二区三区免费视频 | 国产色在线观看 | 日韩精品影院 | 日本一区二区精品 | 亚洲综合在线一区二区 | 日韩免费视频一区二区 | 久久资源av| 一区二区精品视频 | 久久青青视频 | 欧美美女爱爱视频 | 久久久久国产精品一区二区三区 | 日韩av在线免费电影 | 欧美精品在线观看 | 国产精品污www在线观看 | 国产一区二区欧美 | 成人av高清在线观看 | 精品国产青草久久久久福利 | 欧美一极片 | 在线一区二区三区做爰视频网站 | 久久一区 | 亚洲欧美日韩电影 | 成人午夜影院 | 亚洲精选一区 | 中文字幕在线免费看 | 国产福利免费视频 | 一本一道久久a久久精品综合 | 精品久| 欧美一区二区三区在线观看视频 | 国产精品18久久久久久久久久久久 | 日韩精品在线播放 | 欧美区在线 | 一区二区三区影院 | 国产1区在线观看 | 天天摸天天操 | 成人国产精品免费网站 | 91亚洲精| 九九免费观看全部免费视频 | 中文字幕第一页在线视频 | 色综合激情 | 91电影在线观看 | 国产精品久久久久一区二区三区 | 国产乱码精品一区二区三区中文 | 羞羞视频免费在线观看 | 91视频在线看 | 欧美视频在线免费 | 国产日韩欧美综合 | 国产免费av网站 | 99国产精品久久久久久久 | 综合久久网 | 天天干在线影院 | 久久久久黄 | 亚洲精品日韩激情欧美 | 久久国产精品视频 | 成人性视频在线播放 | 另类一区 | 国产99久久精品 | 成人免费福利视频 | 色综合久久久久 | 日韩免费在线观看视频 | 天堂资源 | 国产一区二区免费 | 亚洲成人精品在线观看 | 91久久精品久久国产性色也91 | 米奇狠狠操 | 亚洲精品一区二区三区蜜桃久 | 日批免费观看视频 | 日韩 国产 在线 | 国产精品国色综合久久 | 国产大学生援交视频在线观看 | av一区二区三区四区 | 欧美中文日韩 | 这里有精品视频 | 欧美1级 | 亚洲精品成人在线 | 国产精品一区二区不卡 | 久久丁香 | 2024天天干 | 日韩中文一区二区三区 | 亚洲久草| 国产精品久久久久久久久 | 中文字幕乱码一区二区三区 | 超碰精品在线观看 | 岛国av免费看 | 久久精品欧美一区二区三区麻豆 | 午夜成人免费电影 | 欧美1区| 在线观看三区 | 成人午夜sm精品久久久久久久 | 国产成人一区二区三区 | 亚洲精品成人悠悠色影视 | 人人人人人你人人人人人 | 国产精品资源在线 | 欧美hdfree性xxxx | 亚洲精品在线成人 | 一区二区免费在线 | 成人在线观看免费 | 日本久久久久久 | 精品中文字幕一区 | 国产精品久久一区二区三区 | 国产精品久久久久久久一区探花 | 日韩一区中文字幕 | 国产情侣小视频 | 精品一区二区三区在线观看视频 | 999精品在线 | 欧美日韩一区电影 | 欧美伦理一区二区 | 欧美日韩成人在线视频 | 日韩精品亚洲专区在线观看 | 亚洲aⅴ网站 | 9色porny自拍视频一区二区 | 美女黄网站视频免费 | 干干日日 | 麻豆一区一区三区四区 | 久久男女视频 | 日韩在线一区二区 | 怡红院免费在线视频 | aa级毛片毛片免费观看久 | 一区二区三区影视 | 久久另类| 高清国产一区二区三区四区五区 | 91国内精品久久 | 国产欧美日韩一区二区三区 | 亚洲成人精品网 | 日韩电影一区二区三区 | 国产欧美综合一区二区三区 | 亚洲欧美国产另类 | 中文字幕乱码一区二区三区 | 国产精品美女久久久久久久久久久 | 亚洲视频在线免费观看 | 久久久久女人精品毛片九一韩国 | 国产成人精品无人区一区 | 天堂在线视频 | 精品国产欧美一区二区 | 国产精品一区二区久久久久 | 国产精品国色综合久久 | 欧美日韩不卡合集视频 | 国产亚洲精品久久久闺蜜 | 999这里只有精品 | 夜夜骑天天射 | 国产单男 | 一本一道久久a久久精品综合 | 自拍偷拍在线视频 | 在线成人av | 国产欧美在线一区二区 | 精品视频一区二区在线观看 | 成人免费视频播放 | 国产精品亚洲欧美日韩一区在线 | 98精品国产高清在线xxxx天堂 | 亚洲成人一区二区三区 | 性色浪潮| 久久国产精品免费一区二区三区 | 亚洲视频综合 | 日本亚洲一区 | 国产视频综合在线 | 国产成人在线播放 | 91亚洲国产成人久久精品网站 | 日韩成人在线观看 | 亚洲成人精品在线观看 | 一区二区三区国产亚洲网站 | 欧美大片黄 | 久久欧美精品 | 国产精品久久久久久久久久久久冷 | 伊人久色| 日日鲁鲁 | 奇米在线视频 | 日韩精品一区二区在线观看 | 亚洲一区二区在线 | 亚洲成人免费在线观看 | 久久久久久久av | 在线高清av | www.av欧美| 黄的视频网站 | 一区二区在线免费观看 | 国产探花在线看 | 手机看片国产精品 | 成人免费在线视频观看 | 国产精品久久久久久久午夜片 | 黄色毛片在线看 | 99精品全国免费观看视频软件 | 午夜视频黄| 日本亚洲欧美 | 日韩成人在线免费视频 | 亚洲精品美女久久 | 亚洲精品亚洲人成人网 | 日韩一区二区观看 | 精品三区 | 国产精品午夜在线观看 | 欧美一区二区三区四区不卡 | 在线成人av | 国产精品人人做人人爽 | 亚洲一区二区三区免费在线观看 | 日韩精品在线网站 | av影片在线 | 欧美日韩精品一区二区在线播放 | 欧美一区二区免费 | 久久久久久久国产 | 亚洲高清视频在线观看 | 国产一级在线 | 亚洲一区二区三区四区的 | 成人在线视频免费 | 欧美视频在线免费 | 久久精品一二三四 | 国产成人精品综合 | av毛片在线免费看 | 亚洲人人艹 | 粉嫩高清一区二区三区精品视频 | 国产精品一区在线 | 国产日韩欧美三级 | 中国黄色毛片 大片 | 欧美精品一区在线发布 | 在线视频 亚洲 | 91九色在线观看 | 亚洲经典视频在线观看 | 日日爱夜夜爱 | 久久久天堂国产精品女人 | 国产精品久久久爽爽爽麻豆色哟哟 | a级在线| 国产免费黄色 | 91久久久久| 日本一本视频 | 国产精品久久久久一区二区三区 | 一级做a爰片毛片 | 午夜久久久久 | 日本不卡高字幕在线2019 | 精品日韩欧美 | 中文字幕av第一页 | 天天干人人插 | 亚洲免费在线播放 | 日韩精品一区二区三区第95 | 国产超碰人人模人人爽人人添 | 久久精品免费视频观看 | 国产日韩欧美一区二区 | 日韩手机电影 | 三级在线视频 | 欧美日韩国产精品一区二区亚洲 | 日本一区二区三区四区 | 成人性大片免费观看网站 | a级毛片免费高清视频 | 亚洲男人天堂2024 | 午夜精品久久久久久久 | 午夜精品久久久久久久 | 国产精品久久精品 | 国产区区| 亚洲人网站 | 草久在线视频 | 爱爱网址| 2018天天操夜夜操 | 日韩成人小视频 | 亚洲激情视频在线播放 | 日本做暖暖视频高清观看 | 免费国产一区二区 | 免费看的毛片 | 欧美国产日韩一区 | 精品成人免费视频 | 日韩在线精品视频 | 亚洲精品乱码 | 综合av第一页 | 午夜精品久久久久久久白皮肤 | 欧美国产在线观看 | 97色在线视频 | 欧美日韩国产精品一区 | 色婷婷综合久久 | 成年人在线观看 | 国产在线视频网站 | 日韩成人在线免费视频 | 毛片99 | 欧美三级在线 | 久久综合狠狠综合久久综合88 | 午夜精品久久久久久99热软件 | 欧美日韩视频 | 成人av观看 | 能直接看的av网站 | 免费av手机在线观看 | 91福利网站在线观看 | 日韩视频一区 | 亚洲日本欧美日韩高观看 | 久久免费视频国产 | 成人免费xxxxx在线视频软件 | 国产真实精品久久二三区 | 亚洲国产成人精品女人 | 爱爱日韩| 精品国产一区一区二区三亚瑟 | 日韩国产在线 | 亚洲精品日韩综合观看成人91 | 漂亮少妇videoshd忠贞 | 一区二区三区观看视频 | 亚洲免费成人 | av免费网站在线观看 | 中文字幕第一页在线视频 | 黑人精品xxx一区一二区 | 成人久久久精品乱码一区二区三区 | 午夜免费福利视频 | 国产精品99久久 | 精品视频一区在线观看 | 欧美一区二区三区xxxx监狱 | 午夜影院在线观看免费 | 亚洲精品在线国产 | a网站在线观看 | 欧洲视频一区二区三区 | 久久久久免费精品视频 | 日韩一级av毛片 | 欧美日韩免费在线 | 亚洲一区免费在线观看 | 好看毛片 | 国产噜噜噜噜噜久久久久久久久 | 中文字幕一区在线观看视频 | 亚洲一区精品在线 | 亚洲一区二区视频在线观看 | 欧美日韩一区二区在线播放 | 精品1区 | 成人免费一区二区三区 | 久久久精品一区二区三区 | 精品96久久久久久中文字幕无 | 欧美一级免费播放 | 亚洲成人精品视频 | 欧美成人免费网站 | 九九在线精品 | 在线成人一区 | 奇米精品一区二区三区在线观看 | 成人黄色片在线观看 | 亚洲国产精品久久人人爱 | 在线视频第一页 | 午夜免费视频网站 | av中文字幕在线观看 | 涩涩视频在线观看 | 精品国产一区二区三区性色av | 91免费视频 | 成人久久久久爱 | 色天天综合久久久久综合片 | 亚洲精品久久久一区二区三区 | 日韩欧美在线视频 | 亚洲不卡| 久久久久久艹 | 久久丝袜| 五月天婷婷精品 | 午夜影视在线观看 | 欧美一区在线视频 | 久久99精品久久久久蜜臀 | 在线免费看黄视频 | 99久久精品国产毛片 | 麻豆国产露脸在线观看 | 午夜电影网址 | 一级特黄aaa大片在线观看 | 欧美在线观看免费观看视频 | 九色在线观看 | 九色网址| 欧美精品一区三区 | 九色在线播放 | 国产精品99久久久久久动医院 | 精品国产乱码久久久久久1区二区 | 六月丁香av | 国产在线三区 | 亚洲第1页 | 国产农村妇女精品久久 | 欧美国产日本一区 | 99草免费视频| 国产99一区二区 | 亚洲一区在线观看视频 | 国产福利电影一区 | 欧美精品一区二区三区蜜臀 | 在线观看的av | 国产999精品久久久影片官网 | 欧美在线观看禁18 | 中文字幕久久精品 | 娇妻被朋友调教成玩物 | 不用播放器的免费av | chinese中国真实乱对白 | 91精品国产91久久久久久黑人 | 亚洲国产精品久久久 | www.亚洲一区二区 | 欧美香蕉 | 日日操夜夜操天天操 | 国产精品女教师av久久 | 亚洲一区成人在线观看 | 日韩在线视频观看 | 精品国产成人 | 国产在线视频一区二区 | 国产成人av一区二区三区 | 国产精品1区2区 | 色花av | 日韩成人在线一区 | 日韩av在线一区二区三区 | 亚洲精品一区二三区不卡 | 中文字幕日韩专区 | 婷婷久久五月天 | 成人综合社区 | 久久高清毛片 | 免费看黄视频网站 | 不卡视频一区二区三区 | 久久网日本 | 日本成人中文字幕 | 中文字幕国产在线视频 | 中文字幕在线看 | 操操网站 | 99免费精品 | 国产日韩欧美 | 国产自产才c区 | 在线看一区| 国产精品二区三区 | 日韩欧美在线免费观看 | 一级片在线观看网站 | 欧美成人伊人 | 国产v日产∨综合v精品视频 | 成人精品在线观看 | 日韩一区二区在线观看 | 国产免费av一区二区三区 | 青青草网| 操操操影院 | 国产一区二区三区久久久久久久久 | 欧美一级毛片久久99精品蜜桃 | 草久网| 午夜不卡一区二区 | 久久国产精品免费一区二区三区 | 天堂在线中文 | 国产精品1区2区 | 狠狠爱天天操 | 久久久精品免费看 | 一级a毛片| 97男人的天堂 | 欧美精品成人一区二区在线 | 91免费电影| 国产精品久久久久久久久久久不卡 | a一级片在线观看 | 国产精品高潮呻吟久久av黑人 | 中文二区 | 欧美成人一区二区三区 | 日本黄色一级电影 | 国产亚洲综合精品 | 欧美日韩一区在线 | 在线日韩| www.av在线| 国产一区二区在线看 | 日本黄a三级三级三级 | 亚洲精品视频大全 | 日韩乱码中文字幕 | 4h影视| 国产艹| 欧美久草| 干干人人 | 午夜精品久久久久久久 | 久久9国产偷伦 | 国产一区二区三区在线看 | www在线观看国产 | 爱色av| 欧美精品一区二区三区蜜臀 | 在线免费观看毛片 | 最新天堂中文在线 | 久久久精品日本 | 国产91极品 | 久久久中文字幕 | 欧美一区视频 | 中国一级免费毛片 | 仙踪林久久久久久久999 | 欧美9999 | 亚洲久草 | 视频二区在线观看 | 国产精品一区2区 | www.国产视频| 成人激情视频 | 在线视频 91 | 一区二区三区在线播放 | 久久韩国| 亚洲国产成人在线 | 91超碰在线播放 | 免费观看一级毛片 | 日韩视频在线观看中文字幕 | 国产精品爱久久久久久久 | 成人av影视在线观看 | 久久久久久久久久久免费视频 | 秋霞a级毛片在线看 | 欧洲精品视频在线观看 | 婷婷狠狠 | 黄色毛片在线观看 | 搞黄视频在线观看 | av三级| 一区免费视频 | 久久首页 | 综合中文字幕 | 婷婷综合五月天 | 亚洲精品一区二区三区中文字幕 | av黄色一级片 | 成人免费在线观看 | 日韩视频一二 | 亚洲一级毛片 | 在线免费黄色小视频 | 毛片真人毛毛片毛片 | 成人欧美 | 91在线精品秘密一区二区 | 国产香蕉97碰碰久久人人九色 | 欧美一区二区三区在线视频 | 91在线观看视频 | 欧美亚洲国产日韩 | 午夜影视免费观看 | 中文日韩在线 | 欧美精品一二三区 | 激情久久久久 | 老司机深夜福利在线观看 | 国产精品99久久久久久大便 | 激情99| 午夜爱爱毛片xxxx视频免费看 | 天天天操操操 | 亚洲免费网站 | 亚洲欧美激情视频 | 亚洲国产精品99久久久久久久久 |