日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

用Java分割大型XML文件

發布時間:2023/12/3 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Java分割大型XML文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上周,我被要求用Java編寫一些東西,該東西能夠將單個30GB XML文件拆分為可配置文件大小的較小部分。 該文件的使用者將是一個中間件應用程序,該應用程序存在XML較大的問題。 在后臺,它使用某種DOM解析技術,使它在一段時間后耗盡內存。 由于它是基于供應商的中間件,因此我們無法自行糾正。 最好的選擇是創建一些預處理工具,該工具會先將大文件分成多個較小的塊,然后再由中間件處理。

XML文件帶有一個相應的W3C模式,該模式由強制性頭部分和緊隨其后嵌套有多個0 .. *數據元素的內容元素組成。 對于演示代碼,我以簡化形式重新創建了架構:
標頭的大小可以忽略。 單個數據元素的重復也很小,可以說少于50kB。 由于數據元素重復的次數,XML太大了。 要求是:

  • 分割后的XML的每一部分都應為語法有效的XML,并且每一部分還應針對原始模式進行驗證
  • 該工具應根據架構驗證XML,并報告所有驗證錯誤。 驗證不得阻塞,并且不可在輸出中跳過非驗證元素或屬性
  • 對于標頭,決定將其復制到每個新的輸出文件中,而不是將其復制到每個新的輸出文件中,并使用一些處理信息和一些默認值來重新生成該標頭

因此,使用諸如Unix Split之類的二進制拆分工具是不可能的。 在固定數量的字節之后,這將拆分,從而確保XML損壞。 我不太確定,但是諸如Split之類的工具也不了解編碼。 因此,在字節“ x”之后進行拆分不僅會導致在XML元素的中間進行拆分(例如),而且甚至會在字符編碼序列的中間進行拆分(例如,在使用經過UTF8編碼的Unicode時)。 顯然,我們需要更智能的東西。

XSLT作為核心技術也是行不通的。 乍一看,可能會很想嘗試:使用XSLT2.0,可以從單個輸入文件創建多個輸出文件。 甚至可以在轉換時驗證輸入文件。 但是,細節始終是魔鬼。 否則,在Java中進行簡單的操作(例如將驗證錯誤寫入單獨的文件或檢查當前輸出文件的大小)可能需要自定義Java代碼。 對于Xalan和Saxon來說,當然可以有這樣的擴展,但是Xalan不是XSLT2.0實現,因此只剩下Saxon。 最后但并非最不重要的一點是,XSLT1.0 / 2.0是非流式的,這意味著它們會將整個源文檔讀入內存,因此這顯然將XSLT排除在了可能性之外。

剩下的唯一選擇就是Java XML解析。 當然,在這種情況下,理想的選擇是StAX。 我不在這里進行SAX與StAX的比較,事實是StAX能夠針對架構的身份進行驗證(至少某些解析器可以)并且還可以編寫XML。 而且,與SAX相比,API的使用要容易得多,因為基于pull的API提供了對迭代文檔的更多控制,并且比SAX的推送方式更令人愉快。 好的,我們需要什么:

  • 能夠驗證XML的StAX實現
    • Oracle的JDK默認附帶SJSXP作為StAX實現,但是此驗證無效。
  • 最好具有某種對象/ XML映射技術,用于(重新)創建標頭,而不是手動擺弄元素并必須查找正確的數據類型/格式
    • 顯然是JAXB。

該代碼有點大,無法在此處整體顯示。 可以訪問源文件,XSD和測試XML
了這里 GitHub上。 它具有Maven pom文件,因此您應該能夠在選擇的IDE中將其導入。 JAXB綁定編譯器將自動編譯模式,并將生成的源放在類路徑上。

public void startSplitting() throws Exception {XMLStreamReader2 xmlStreamReader = ((XMLInputFactory2) XMLInputFactory.newInstance()).createXMLStreamReader(BigXmlTest.class.getResource("/BigXmlTest.xml"));PrintWriter validationResults = enableValidationHandling(xmlStreamReader);int fileNumber = 0;int dataRepetitions = 0;XMLStreamWriter xmlStreamWriter = openOutputFileAndWriteHeader(++fileNumber); // Prepare first file

第一行創建了StAX流讀取器,這意味著我們正在使用游標API。 迭代器API使用XMLEventReader類。 類名中還有一個奇怪的“ 2”,它表示Woodstox的StAX 2功能,其中之一可能是對驗證的支持。 從
在這里 :

StAX2 is an experimental API that is intended to extend basic StAX specifications in a way that allows implementations to experiment with features before they end up in the actual StAX specification (if they do). As such, it is intended to be freely implementable by all StAX implementations same way as StAX, but without going through a formal JCP process. Currently Woodstox is the only known implementation.

可以在“ enableValidationHandling”中看到
源文件(如果需要)。 我將重點介紹重要的部分。 首先,加載XML模式:

XMLValidationSchema xmlValidationSchema = xmlValidationSchemaFactory.createSchema(BigXmlTest.class.getResource("/BigXmlTest.xsd"));

用于將可能的驗證結果寫入輸出文件的回調;

public void reportProblem(XMLValidationProblem validationError) throws XMLValidationException {validationResults.write(validationError.getMessage()+ "Location:"+ ToStringBuilder.reflectionToString(validationError.getLocation(),ToStringStyle.SHORT_PREFIX_STYLE) + "\r\n");}

“ openOutputFileAndWriteHeader”將創建一個XMLStreamWriter(它又是游標API的一部分,迭代器API具有XMLEventWriter),我們可以將其輸出或原始XML文件的一部分。 它還將使用JAXB創建我們的標頭,并將其寫入輸出。 默認情況下,使用Schema編譯器(xjc)生成JAXB對象。

private XMLStreamWriter openOutputFileAndWriteHeader(int fileNumber) throws Exception {XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();xmlOutputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);XMLStreamWriter writer = xmlOutputFactory.createXMLStreamWriter(new FileOutputStream(new File(System.getProperty("java.io.tmpdir"), "BigXmlTest." + fileNumber + ".xml")));writer.setDefaultNamespace(DOCUMENT_NS);writer.writeStartDocument();writer.writeStartElement(DOCUMENT_NS, BIGXMLTEST_ROOT_ELEMENT);writer.writeDefaultNamespace(DOCUMENT_NS);HeaderType header = objectFactory.createHeaderType();header.setSomeHeaderElement("Something something darkside");marshaller.marshal(new JAXBElement<HeaderType>(new QName(DOCUMENT_NS, HEADER_ELEMENT, ""), HeaderType.class,HeaderType.class, header), writer);writer.writeStartElement(CONTENT_ELEMENT);return writer;}

在第3行,我們啟用“修復名稱空間”。 規格說明如下:

javax.xml.stream.isRepairingNamespaces: Function: Creates default prefixes and associates them with Namespace URIs. Type: Boolean Default Value: False Required: Yes

我從中了解到,處理默認名稱空間是必需的。 事實是,如果未啟用,則不會以任何方式編寫默認名稱空間。 在第6行,我們設置默認名稱空間。 設置它實際上不會將其寫入流。 因此,需要writeDefaultNamespace(第9行),但這只能在寫入start元素之后才能完成。 因此,您必須在編寫任何元素之前定義默認名稱空間,但是您需要在編寫第一個元素之后編寫默認名稱空間。 理由是StAX需要知道它是否必須為要寫yes或no的根元素生成前綴。

在第8行,我們編寫了root元素。 指示此元素所屬的名稱空間很重要。 如果您未指定前綴,則會為您生成一個前綴,或者,在本例中,將不會生成任何前綴,因為StAX知道我們已經設置了默認名稱空間。 如果您要刪除第6行的默認名稱空間指示,則將為根元素添加前綴(帶有隨機前綴),例如:<wstxns1:BigXmlTest xmlns:wstxns1 =“ http:// www ...接下來,我們編寫默認名稱空間,它將被寫入先前開始的元素(順便說一句,為了對此順序有更深入的了解,請參閱這篇不錯的文章 )在第11-14行中,我們使用JAXB生成的模型創建標頭,然后讓我們的JAXB marshaller直接將其寫到我們的StAX輸出流。

重要提示: JAXB編組器以片段模式初始化,否則它將開始添加XML聲明,這對于獨立文檔是必需的,當然,在現有文檔中間是不允許的:

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

附帶說明一下:在此示例中,JAXB集成并不是真正有用,它會增加復雜性并占用更多代碼行,然后僅使用XMLStreamWriter添加元素即可。 但是,如果您有一個更復雜的結構需要創建并合并到文檔中,則具有自動對象映射非常方便。

因此,我們有啟用驗證的閱讀器。 從我們開始遍歷源文檔的那一刻起,它將同時驗證和解析。 然后,我們的writer已經編寫了一個初始化的文檔和標頭,并準備接受更多數據。 最后,我們必須遍歷源代碼并將每個部分寫入輸出文件。 如果輸出文件變大,我們將換一個新文件:

while (xmlStreamReader.hasNext()) {xmlStreamReader.next();if (xmlStreamReader.getEventType() == XMLEvent.START_ELEMENT&& xmlStreamReader.getLocalName().equals(DATA_ELEMENT)) {if (dataRepetitions != 0 && dataRepetitions % 2 == 0) { // %2 = just for testing: replace this by for example checking the actual size of the current output filexmlStreamWriter.close(); // Also closes any open Element(s) and the documentxmlStreamWriter = openOutputFileAndWriteHeader(++fileNumber); // Continue with next filedataRepetitions = 0;}// Transform the input stream at current position to the output streamtransformer.transform(new StAXSource(xmlStreamReader), new StAXResult(new FragmentXMLStreamWriterWrapper(new AvoidDefaultNsPrefixStreamWriterWrapper(xmlStreamWriter, DOCUMENT_NS))));dataRepetitions++;} }

重要的一點是,我們不斷迭代源文檔,并檢查是否存在Data元素的開頭。 如果是這樣,我們將相應的元素及其同級元素流式傳輸到輸出。 在我們的簡單示例中,我們沒有兄弟姐妹,只有文本值。 但是,如果結構更復雜,則所有基礎節點將自動復制到輸出中。 每隔兩個數據元素,我們將循環輸出文件。 關閉編寫器,并初始化一個新的編寫器(當然,可以通過檢查文件大小而不是%2來代替此檢查)。 如果作家是關閉的,它將自動處理關閉打開的元素并最終關閉文檔本身,而無需您自己這樣做。 作為將節點從輸入流傳輸到輸出的機制,需要注意以下幾點:

  • 由于驗證,我們不得不使用游標API,因此必須使用XSLT將節點及其兄弟節點傳輸到輸出。 XSLT具有一些默認模板,如果您未專門指定XSL,則將調用這些模板。 在這種情況下,它將輸入轉換為給定的輸出。
  • 需要一個自定義的FragmentXMLStreamWriterWrapper ,我在JavaDoc中對此進行了記錄。 再次將這個包裝器包裝在PreventDefaultNsPrefixStreamWriterWrapper中 。 最后一個原因是默認的XSLT模板無法識別源文檔中的默認名稱空間。 一分鐘內提供更多信息(或搜索避免使用DefaultDefaultNsPrefixStreamWriterWrapper)。
  • 您使用的轉換器必須是Oracle JDK的內部版本。 在初始化轉換器的地方,我們直接引用內部TransformerFactory的實例: com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl然后創建正確的轉換器: Transformer = new TransformerFactoryImpl()。newTransformer(); 通常,您將使用TransformerFactory.newInstance()并使用classpath上可用的轉換器。 但是,解析器和轉換器可以通過提供META-INF /服務來安裝自己。 如果另一個轉換器(例如默認的Xalan,而不是重新打包的JDK版本)將在類路徑上,則轉換將失敗。 原因是顯然只有JDK內部版本才可以從StAXSource轉換為StAXResult
  • 轉換器實際上將讓我們的XMLStreamReader在迭代過程中繼續。 因此,在處理完一個數據元素之后,理論上閱讀器的光標將在下一個數據元素處就緒。 從理論上講,如果格式化XML,則下一個事件類型可能是空格。 因此,在下一個Data元素實際準備就緒之前,它仍可能需要在while循環中對xmlStreamReader.next()進行一些迭代。

結果是我們有3個輸出文件,每個輸出文件都符合原始架構,每個文件都有2個數據元素:

要將大約30GB的XML(我在說我的原始工作分配XML具有更復雜的結構,而不是此處使用的演示XSD)拆分為大約500MB的部分,并花費了大約25分鐘的時間。 為了測試內存使用率,我特意將Xmx設置為32MB。 從圖中可以看出,內存消耗非常低,并且沒有GV開銷: 生活是美好的,但并非完全如此。 在那兒,我發現有些尷尬的事情需要小心。

在我的實際場景中,輸入XML沒有與之關聯的名稱空間,我很確定它永遠不會。 這就是我堅持使用此解決方案的原因。 在演示中,這里只有一個名稱空間,并且已經開始使設置更加脆弱。 問題不在于StAX:使用StAX處理名稱空間非常簡單。 您可以決定具有一個與該模式的目標名稱空間相對應的默認名稱空間(假設您的模式為elementFormDefault = qualified),并可以為該模式中導入的其他名稱空間聲明一些帶前綴的名稱空間。 當XSLT開始干擾輸出流時,問題就開始出現(您可能已經注意到了)。 顯然,它不會檢查已經定義了哪些名稱空間或發生其他事情。

結果是,它們通過使用其他前綴重新定義現有名稱空間或重置默認名稱空間和其他不需要的內容,使文檔嚴重混亂。 如果您需要比默認模板更多的名稱空間操作,則可能需要XSL。 如果輸入文檔使用默認名稱空間,則XSLT也會觸發異常。 它將嘗試注冊名稱為“ xmlns”的前綴。 不允許這樣做,因為xmlns保留用于指示默認名稱空間,不能用作前綴。 我為此測試申請的解決方案是忽略任何前綴“ xmlns”,并忽略與xmlns前綴組合的目標名稱空間的添加(這就是為什么要使用避免DefaultNsPrefixStreamWriterWrapper)。 前綴和名稱空間都需要在PreventDefaultNsPrefixStreamWriterWrapper中進行匹配,因為如果您要使用的輸入文檔中沒有默認名稱空間,而是帶有前綴(例如<bigxml:BigXmlTest xmlns:bigxml =“ http://…。”> <bigxml:Header …。),那么您就不能忽略添加名稱空間(該組合將成為帶有“ bigxml”前綴的目標名稱空間),因為這只會產生數據元素的前綴而沒有名稱空間綁定,例如:

<?xml version='1.0' encoding='UTF-8'?> <BigXmlTest xmlns="http://www.error.be/bigxmltest"><Header><SomeHeaderElement>Something something darkside</SomeHeaderElement></Header><Content><bigxml:Data>Data1</bigxml:Data><bigxml:Data>Data2</bigxml:Data></Content> </BigXmlTest>

請記住,XML的生產者可以自由選擇(還是在elementFormDefault =合格的情況下)選擇使用默認命名空間還是為每個元素添加前綴。 該代碼應該透明地能夠處理這兩種情況。 為方便起見,請使用PreventDefaultNsPrefixStreamWriterWrapper代碼:

public class AvoidDefaultNsPrefixStreamWriterWrapper extends XMLStreamWriterAdapter { ...@Overridepublic void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {if (defaultNs.equals(namespaceURI) && "xmlns".equals(prefix)) {return;}super.writeNamespace(prefix, namespaceURI);}@Overridepublic void setPrefix(String prefix, String uri) throws XMLStreamException {if (prefix.equals("xmlns")) {return;}super.setPrefix(prefix, uri);}

最后,我還寫了一個版本(點擊
此處完全適用于GitHub),但這次使用的是StAX迭代器API。 您會注意到,不再需要繁瑣的XSLT來流傳輸到輸出。 只需將每個感興趣的事件添加到輸出中即可。 通過首先使用游標API驗證輸入,然后使用Iterator API解析輸入,可以解決缺少驗證的問題。 這將花費更長的時間,但是在大多數情況下仍然可以接受。 最重要的是:

while (xmlEventReader.hasNext()) {XMLEvent event = xmlEventReader.nextEvent();if (event.isStartElement() && event.asStartElement().getName().getLocalPart().equals(CONTENT_ELEMENT)) {event = xmlEventReader.nextEvent();while (!(event.isEndElement() && event.asEndElement().getName().getLocalPart().equals(CONTENT_ELEMENT))) {if (dataRepetitions != 0 && event.isStartElement()&& event.asStartElement().getName().getLocalPart().equals(DATA_ELEMENT)&& dataRepetitions % 2 == 0) { // %2 = just for testing: replace this by for example checking the actual size of the current// output filexmlEventWriter.close(); // Also closes any open Element(s) and the documentxmlEventWriter = openOutputFileAndWriteHeader(++fileNumber); // Continue with next filedataRepetitions = 0;}// Write the current event to outputxmlEventWriter.add(event);event = xmlEventReader.nextEvent();if (event.isEndElement() && event.asEndElement().getName().getLocalPart().equals(DATA_ELEMENT)) {dataRepetitions++;}}}}

在第2行,您將看到返回XMLEvent,其中包含有關當前節點的所有信息。 在第4行上,您看到使用此表單檢查元素類型更容易(與其與常量進行比較,還可以使用對象模型)。 在第19行,要將元素從輸入復制到輸出,我們只需將Event添加到XMLEventWriter。

參考:來自Koen Serneels –技術博客博客的JCG合作伙伴 Koen Serneels 分離Java中的大型XML文件 。

翻譯自: https://www.javacodegeeks.com/2013/08/splitting-large-xml-files-in-java.html

總結

以上是生活随笔為你收集整理的用Java分割大型XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91在线免费播放视频 | 奇米先锋 | 波多野结衣日韩 | 久草在线观看视频免费 | 久久这里只有精品1 | 91色影院| 久久婷婷一区 | 国产自产在线视频 | 亚洲国产精品日韩 | 97精产国品一二三产区在线 | 国产视频91在线 | 欧美国产精品一区二区 | 狠狠操狠狠干天天操 | 激情五月色播五月 | 中文字幕字幕中文 | 国产精品自产拍在线观看中文 | 天天操天天摸天天干 | 手机av电影在线观看 | 麻豆国产精品永久免费视频 | 911香蕉视频 | 欧美一级特黄aaaaaa大片在线观看 | 亚洲欧美乱综合图片区小说区 | 久久久久久久久久久免费av | 成人福利在线 | 天天做日日做天天爽视频免费 | 欧美日本中文字幕 | 美女视频黄,久久 | 在线免费黄网站 | 天天婷婷| 9幺看片 | 午夜精品久久久久久久99无限制 | a天堂免费| 国产91九色蝌蚪 | 91九色网站 | 在线视频1卡二卡三卡 | 日日躁你夜夜躁你av蜜 | 欧美一区二区在线免费看 | 精品久久久久_ | 日本在线h| 亚洲国产播放 | 91麻豆精品 | 国产第一页福利影院 | 久青草电影 | 国产精品一区二区精品视频免费看 | 亚洲国产综合在线 | 麻豆久久精品 | 亚洲国产午夜视频 | 免费成人黄色片 | 亚洲人成精品久久久久 | av在线播放免费 | 狠狠干激情 | 国产二区免费视频 | 国产成人精品一区二区在线 | 精品国产区 | 午夜精品一区二区国产 | 91成人看片 | 天天操天天操天天操天天 | 国产精品一区二区视频 | 国产黄色av网站 | 成人久久18免费网站图片 | 国产视频不卡 | 最近中文字幕大全中文字幕免费 | 国产精品九九久久99视频 | 国产一级二级在线观看 | 国产在线a免费观看 | 欧美xxxxx在线视频 | 中文字幕在线观看av | 黄色三级免费片 | 免费观看黄色12片一级视频 | 免费日韩在线 | 一二三区视频在线 | 我爱av激情网 | 国产成人精品一区二区三区 | bbb搡bbb爽爽爽 | 69亚洲乱| av一级网站 | 亚洲精品456在线播放乱码 | 亚洲精品久久久久999中文字幕 | 激情五月在线 | 久久国产免费看 | 国产精品一区二区三区在线看 | 久久成人午夜视频 | 极品美女被弄高潮视频网站 | 日韩精品一区二区三区在线视频 | 国产手机免费视频 | 日韩久久久久久久久 | 黄色亚洲在线 | 久久综合免费 | 日日成人网 | av在线免费播放 | 波多野结衣亚洲一区二区 | 天天操人人要 | 久久亚洲视频 | 免费观看国产成人 | 欧美激情亚洲综合 | 国产日韩精品在线观看 | 五月婷婷欧美 | 久草资源在线观看 | 免费看黄视频 | 日韩大片在线免费观看 | 九九精品视频在线看 | 69亚洲视频| 色偷偷88888欧美精品久久久 | 精品在线视频一区 | 久久成熟 | 香蕉影院在线 | 亚洲久草在线 | 日韩视频免费看 | 黄色特级片 | 97超碰香蕉 | 国产一区在线看 | 狠狠狠狠狠狠狠狠干 | 欧美永久视频 | 精品成人免费 | 国产视频一区二区三区在线 | 国产精品69av| 最近日韩中文字幕中文 | av色综合 | 国产品久精国精产拍 | 91| 欧美精品三级 | 亚洲码国产日韩欧美高潮在线播放 | 97超碰人人澡人人爱 | 黄色特级片 | 91在线视频一区 | 在线亚洲日本 | 成人精品视频久久久久 | 欧美一区二区三区在线播放 | 丰满少妇对白在线偷拍 | 一区二区 不卡 | 黄色成人在线网站 | 国产手机在线观看 | 中文字幕国产视频 | 狠狠操.com| 日韩欧美精品在线观看视频 | 99视频精品视频高清免费 | 久久久久久久综合色一本 | 8x成人免费视频 | 国内精品久久久久久 | 亚洲精品久久久蜜桃 | 国产免费观看久久 | 日韩欧美国产激情在线播放 | 99在线热播精品免费 | 久操中文字幕在线观看 | 日韩一区二区三区免费视频 | 久久久久久蜜桃一区二区 | 色综合久久88色综合天天 | 人人爽人人爽人人爽 | 亚洲视频 在线观看 | 最近中文字幕高清字幕在线视频 | 日韩在线不卡av | 欧美另类xxx| 国产不卡在线观看 | 久久久久久久av麻豆果冻 | 亚洲精品在线免费看 | 久久亚洲视频 | av国产在线观看 | 亚洲成人av片在线观看 | 日韩精品观看 | 天天操人人要 | 99久视频| 成片视频免费观看 | 日韩乱码中文字幕 | 69xx视频 | 午夜精品久久久99热福利 | 亚洲欧洲日韩 | 精品久久久久久久久久久久久 | 99精品视频在线观看播放 | 婷婷久久婷婷 | 天天艹天天 | www.亚洲精品视频 | www.啪啪.com| 911久久香蕉国产线看观看 | 久草视频国产 | 伊人欧美| 国产一级免费观看视频 | 日韩中文久久 | 国产免费一区二区三区最新 | 欧美激情第28页 | 免费观看第二部31集 | www好男人| 最近最新最好看中文视频 | 中午字幕在线 | 成 人 黄 色 视频 免费观看 | 久久久久久免费毛片精品 | 欧美日韩精品免费观看视频 | 亚洲在线高清 | 亚洲美女在线国产 | 99综合久久 | 在线 国产 亚洲 欧美 | 亚洲国产成人av网 | 日本爱爱免费 | 国产在线色 | 亚洲精品视频免费 | 丁香婷婷久久 | 欧美激情视频三区 | 91九色蝌蚪视频在线 | 97**国产露脸精品国产 | 日韩区在线观看 | 91欧美视频网站 | 中文字幕一区在线 | 日韩色一区二区三区 | 99国产精品久久久久久久久久 | 69国产盗摄一区二区三区五区 | 婷婷综合五月天 | 丁香高清视频在线看看 | 婷婷精品在线视频 | 国产成人av电影在线观看 | 夜夜躁狠狠躁日日躁视频黑人 | 免费在线观看一级片 | 国产在线成人 | 人人狠狠综合久久亚洲婷 | 成人精品一区二区三区电影免费 | 伊人久在线 | 97精品久久 | 国产高清在线精品 | 欧美老女人xx | 精品九九久久 | 日韩午夜精品 | 中文字幕免费在线 | 国产视频精品视频 | 久久久国产精品麻豆 | 中文字幕精品三级久久久 | 狠狠色丁香婷婷综合久小说久 | 中文乱码视频在线观看 | www.97视频 | 国产午夜三级一区二区三桃花影视 | 97在线免费观看视频 | 婷婷av网站| 亚洲视频 中文字幕 | 天天爽天天搞 | 亚洲精品视频免费在线观看 | 亚洲婷婷在线视频 | 日日干天天爽 | 欧美性极品xxxx娇小 | 五月婷婷视频在线观看 | 婷婷视频 | 国产亚洲欧美在线视频 | 天海冀一区二区三区 | 亚洲综合黄色 | 伊人黄色网 | 在线国产一区 | 久久国产精品久久精品国产演员表 | 欧美精品一区二区在线播放 | 三级动图 | 就色干综合 | 天天骚夜夜操 | 九九视频在线观看视频6 | 欧美精品一区二区在线观看 | 色婷婷激婷婷情综天天 | 日日操日日插 | av电影免费观看 | 国产精品成人av在线 | 99热这里只有精品在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | wwxxx日本 | 亚洲性少妇性猛交wwww乱大交 | 国产99自拍 | 亚洲 欧美 成人 | 国产成人99av超碰超爽 | 超薄丝袜一二三区 | 天天射网站 | 免费看一级一片 | 国产日韩在线看 | 91激情在线视频 | 在线观看视频你懂得 | 草久在线播放 | 男女视频91 | 日本 在线 视频 中文 有码 | 美女免费视频一区 | 在线观看日本高清mv视频 | 免费观看一区二区三区视频 | 亚洲黄色免费在线 | 国产 成人 久久 | 久视频在线播放 | 国产黄色片免费在线观看 | 91精品视频在线 | 99免在线观看免费视频高清 | 免费精品视频在线观看 | 亚洲特级毛片 | 18+视频网站链接 | 有码视频在线观看 | 999视频网站| 99热超碰在线 | 999视频精品 | 成 人 黄 色视频免费播放 | 成人欧美一区二区三区黑人麻豆 | 亚洲综合在线五月天 | 免费欧美 | 日韩在线视频免费看 | 亚洲视频 一区 | 又污又黄的网站 | 久久精品这里都是精品 | 久久婷婷国产色一区二区三区 | 国产又黄又爽又猛视频日本 | 狠狠的日 | 五月天综合色 | 91秒拍国产福利一区 | 国产精品美女久久久久aⅴ 干干夜夜 | 久久精品一区二区三区国产主播 | 九九视频这里只有精品 | 天天爱天天操天天干 | 美女黄久久 | 欧美不卡在线 | 国产一级电影网 | 中文字幕资源在线 | 九九免费精品视频在线观看 | 美女网站在线免费观看 | 综合网在线视频 | 成人精品国产免费网站 | 97免费视频在线 | 久久观看最新视频 | 视频二区在线 | 国产美女久久 | 午夜精品福利在线 | 国产精品日韩久久久久 | 亚洲最大av网 | 美女视频黄是免费的 | 日本中文一级片 | 国产精品video爽爽爽爽 | 国产自偷自拍 | av九九九| 毛片在线播放网址 | 另类老妇性bbwbbw高清 | 国产啊v在线观看 | 456免费视频| 国产一级二级在线观看 | 久热色超碰 | av综合站| 免费观看一级成人毛片 | 98涩涩国产露脸精品国产网 | 欧美日韩1区2区 | 四季av综合网站 | 久久任你操 | 久久a国产 | 波多野结衣理论片 | 天天天天天干 | 青草草在线视频 | 欧美精品一区二区三区四区在线 | 国色综合| 99视频精品| 丁香视频 | 狠狠做深爱婷婷综合一区 | 久久综合亚洲鲁鲁五月久久 | 国产亚洲精品久久久久久久久久 | 天天躁日日躁狠狠躁av中文 | 69欧美视频 | www欧美日韩 | 久草在线久草在线2 | 午夜视频在线观看网站 | 视频高清 | 一区精品久久 | 免费观看91| 欧美久久久久久久 | 五月天婷婷综合 | 国产精品一区二区久久国产 | 最新亚洲视频 | www黄色| 一区二区三区四区精品 | 欧美精品久久久久久久久久久 | 欧美亚洲另类在线视频 | 中国一级特黄毛片大片久久 | 91精品国产自产在线观看 | 91在线免费观看网站 | 人人爽久久涩噜噜噜网站 | 欧美a级成人淫片免费看 | 九九视频精品在线 | 超碰国产人人 | 亚洲春色综合另类校园电影 | 蜜桃传媒一区二区 | 日韩成人在线免费观看 | 色婷婷激情五月 | 亚洲激情六月 | 国产精品久久久视频 | 久操视频在线观看 | 中文字幕免 | 蜜臀av性久久久久蜜臀av | 日韩一区正在播放 | 在线看片91 | 一区二区三区日韩视频在线观看 | 99热手机在线观看 | 国产精品扒开做爽爽的视频 | 精品视频免费看 | 四虎海外影库www4hu | 色窝资源 | 欧美日韩精品久久久 | 99久久这里有精品 | 波多野结衣视频一区 | 久99视频| 久久在线视频精品 | 最近免费观看的电影完整版 | 人成免费网站 | 免费看一及片 | 超碰国产人人 | 999久久国产| 99r在线精品 | 又黄又色又爽 | 亚洲视频一 | 久草视频免费在线观看 | 六月激情婷婷 | 国产精品免费麻豆入口 | 久久国产精品99国产精 | 亚洲视频在线免费观看 | 中文字幕在线观看完整版 | 国产精品久久久久久久久久东京 | av在线一二三区 | 日韩在线一二三区 | 伊人五月婷 | 在线亚洲小视频 | 色多多污污 | 国产一级片免费视频 | 韩日精品在线观看 | 亚洲精品国产欧美在线观看 | 九九激情视频 | 在线成人免费av | 欧美久久久久久久久久久久久 | 欧美天堂视频在线 | 日韩欧美精品在线 | 国产精品 欧美 日韩 | 久久久久免费网站 | 91中文字幕在线播放 | 国产在线无 | 精品在线播放 | 久久精品一区八戒影视 | 国产精品久久久久影院日本 | 日韩伦理片一区二区三区 | 亚洲乱码久久久 | 国产一级二级在线播放 | 免费看十八岁美女 | 国产呻吟在线 | 国产97免费 | 我要看黄色一级片 | 亚洲欧美国产视频 | 欧洲精品视频一区二区 | 天天射色综合 | 一本一本久久aa综合精品 | 精壮的侍卫呻吟h | 97国产一区 | 99国产精品视频免费观看一公开 | 国产不卡视频在线播放 | 成人在线免费视频 | 黄色免费国产 | 免费开视频| 国产一级h | 91视频在线自拍 | 国产亚洲精品久久久久久无几年桃 | 亚洲一区精品二人人爽久久 | 亚洲高清激情 | 免费看亚洲毛片 | 欧美日韩视频免费 | 日韩在线播放视频 | 99色亚洲 | 日韩在线观看第一页 | 国产又黄又猛又粗 | 西西人体4444www高清视频 | 麻豆国产精品一区二区三区 | 五月天欧美精品 | 天天躁日日躁狠狠躁 | 国产偷v国产偷∨精品视频 在线草 | 国产偷国产偷亚洲清高 | 欧美激情另类文学 | 久久永久免费 | 超级碰碰碰视频 | a视频在线看 | 国产精品美女视频 | 久久精品日韩 | 成人在线视频在线观看 | 在线免费精品视频 | 久久免费在线观看视频 | 成人97视频 | 97香蕉视频 | 日韩精品亚洲专区在线观看 | 日韩在线免费视频观看 | 在线观看mv的中文字幕网站 | 91九色视频国产 | 91久久一区二区 | 亚洲高清色综合 | 中文字幕资源在线观看 | 成人毛片100免费观看 | 国语自产偷拍精品视频偷 | 欧美在线18 | 久久国产精品免费一区 | 91麻豆网站| 狠狠色丁香婷婷综合久小说久 | 久久成人午夜 | 色com| 天天干,天天干 | 女人18毛片a级毛片一区二区 | 国产精品综合久久久 | 国产精选在线 | 欧美日韩一二三四区 | 亚洲国内精品在线 | 一区二区三区在线影院 | 欧美一级专区免费大片 | 日本少妇高清做爰视频 | 国产高清久久 | 开心激情五月婷婷 | 91精品国产自产91精品 | 最新中文字幕在线观看视频 | 亚洲欧洲精品视频 | 国产精品欧美精品 | 超碰免费久久 | 国产黑丝一区二区 | 91视频最新网址 | 夜夜爽夜夜操 | 日韩在线观看第一页 | 人人澡人人爽欧一区 | 一区二区三区在线不卡 | 色婷婷影视 | 亚洲欧美视频一区二区三区 | 激情文学丁香 | 丝袜+亚洲+另类+欧美+变态 | 亚洲精品美女免费 | 97av视频 | 四虎永久国产精品 | 色婷在线 | 四虎视频| 久久a国产| 日本动漫做毛片一区二区 | 国产精品6999成人免费视频 | 一级成人在线 | 国产对白av | 久久人人爽人人爽人人片 | 中文字幕免费一区 | 五月婷婷另类国产 | 久久国产精品一二三区 | 婷婷九月激情 | av免费看av | 九色视频网站 | 在线播放一区二区三区 | 亚洲美女视频在线 | 97日日碰人人模人人澡分享吧 | 综合国产视频 | 九九导航 | 婷婷久久久久 | www.久久久精品 | 国产精品视频99 | 欧美精品久久久久 | 深爱激情站 | 精品久久久久久国产 | 久久久污| 日韩专区在线观看 | 国产精品观看视频 | 久久系列 | 91片黄在线观看动漫 | 免费观看mv大片高清 | 色偷偷人人澡久久超碰69 | 狠狠操导航 | 亚洲精品视频大全 | 国内精品免费久久影院 | 一二三区视频在线 | 国产九色视频在线观看 | 五月天久久| 精品欧美一区二区在线观看 | 四虎在线观看 | 91精品国产三级a在线观看 | 精品99999| 色综合天天综合 | 激情av资源 | 99色视频在线 | 久久99这里只有精品 | 亚洲午夜在线视频 | 在线观看www91| 麻豆国产网站入口 | 六月丁香色婷婷 | 天天玩天天操天天射 | 亚洲影院色 | 不卡中文字幕av | 中文日韩在线 | 国产人在线成免费视频 | 99久久99久久精品国产片果冰 | 亚洲aⅴ乱码精品成人区 | 日本黄色免费看 | 国产成人精品一区二三区 | 色婷婷国产精品一区在线观看 | 久久精品一区二区三区四区 | 婷婷伊人综合亚洲综合网 | 激情婷婷在线观看 | 三级性生活视频 | 欧美在线视频a | 久久免费福利视频 | 色狠狠操 | 中文字幕在线视频第一页 | 国产看片网站 | 色全色在线资源网 | 成人亚洲欧美 | 免费的黄色av | 99精品久久只有精品 | 九九电影在线 | 热久久电影 | 久久久久久久久久久成人 | 亚洲婷婷综合色高清在线 | 一级性视频 | 精品一区二区视频 | 婷婷色狠狠 | 五月婷婷综合激情 | 成人av免费播放 | 色91av| 亚洲精品综合一二三区在线观看 | 九九精品毛片 | 国产精品久久久久一区二区 | 六月丁香社区 | 91热在线 | 亚洲九九九在线观看 | 欧美一区二区三区特黄 | 久久国产精品免费观看 | 日韩精品一区二区三区在线播放 | 亚洲狠狠丁香婷婷综合久久久 | 欧美日韩精品网站 | 久青草国产在线 | 欧美精品色 | 99久久久久成人国产免费 | 天天操天天射天天 | 国产午夜精品一区二区三区嫩草 | av免费在线网 | 国产精品激情偷乱一区二区∴ | 九九av| 亚洲少妇xxxx | 在线视频观看成人 | 天天操网站 | 深爱婷婷久久综合 | 曰韩在线 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 狠狠躁夜夜a产精品视频 | 99色99| 精品国产一区二区在线 | 日日夜夜免费精品视频 | 激情小说网站亚洲综合网 | 亚洲精品字幕在线 | 最新av在线播放 | av福利在线播放 | 国产一区二区在线观看视频 | av三级在线看 | 亚洲精品www| 蜜臀av在线一区二区三区 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 狠狠操电影网 | 免费看一级黄色 | 超碰97人 | 最近2019中文免费高清视频观看www99 | av成人在线电影 | 不卡的av在线 | 99热国产精品 | 狠狠干天天操 | 成人免费xxx在线观看 | 成人97视频 | 国产一区二区三区高清播放 | 97在线视频观看 | 免费视频 你懂的 | 久久久美女 | 成人国产精品免费 | 少妇精69xxtheporn | 日韩高清一区二区 | 成年人电影免费看 | 日韩精品视频免费在线观看 | 日本爱爱片 | 久久久久久久看片 | 国产91精品一区二区绿帽 | 亚洲精品综合一二三区在线观看 | 夜夜骑天天操 | 日韩最新在线 | 中文在线最新版天堂 | 亚洲国产黄色 | 欧美国产一区在线 | 天天操天天能 | 九九视频热 | 五月天婷亚洲天综合网鲁鲁鲁 | 色婷婷国产精品一区在线观看 | 欧美 亚洲 另类 激情 另类 | 久久久官网| 天天干天天做天天操 | 国产尤物一区二区三区 | 最新午夜电影 | 丁香六月激情婷婷 | 日韩区欠美精品av视频 | 五月激情五月激情 | 久草视频国产 | 亚洲成av | 日韩电影中文字幕在线 | 久久久久北条麻妃免费看 | 在线国产一区二区 | 福利电影一区二区 | 免费观看成人 | 欧美午夜a | 91精品国产成人www | 色先锋av资源中文字幕 | 欧美大片在线观看一区 | 狠狠色丁香久久婷婷综合_中 | 精品一区二区精品 | 国产精品久久久久久久久久免费看 | 国产97视频在线 | 91麻豆精品国产91久久久久 | 日韩精品一区二区三区免费观看 | 天天干天天插 | 91高清在线看 | 9幺看片| 国产精品久久久久久久久费观看 | 国产免费视频一区二区裸体 | 午夜电影中文字幕 | 亚洲色图 校园春色 | 操操操日日日干干干 | 500部大龄熟乱视频使用方法 | 欧洲成人av | 又湿又紧又大又爽a视频国产 | 亚洲综合色丁香婷婷六月图片 | 欧美午夜性生活 | 九九久久久久99精品 | 久久免费一级片 | 免费美女av | 成人啊 v | 999免费视频 | 亚洲综合射 | 人人爽人人爽av | 久久精品日韩 | 亚洲欧美视屏 | 欧美专区国产专区 | 在线免费视频 你懂得 | 日韩中文字幕在线观看 | 日日操天天射 | 久久久久激情视频 | 日日操日日操 | 国产精品久久精品国产 | 中文字幕精品一区二区三区电影 | 国产精美视频 | 中文字幕影片免费在线观看 | 欧美激情视频在线免费观看 | 在线视频福利 | 成人av影院在线观看 | 免费看日韩片 | 91精品国产综合久久久久久久 | 亚洲精品欧洲精品 | 91福利视频免费 | 欧美一级在线看 | 大片网站久久 | 精品无人国产偷自产在线 | h文在线观看免费 | 成人综合日日夜夜 | 国产精品不卡视频 | 在线观看av网 | 黄色录像av | 亚洲美女精品视频 | 久久久99精品免费观看app | 久久久久伦理电影 | 99热官网 | 色之综合网| 99免在线观看免费视频高清 | 人人爽人人爽人人爽 | 精品福利av | 欧美乱大交 | 国产精品成人自产拍在线观看 | 黄色免费视频在线观看 | 蜜臀一区二区三区精品免费视频 | 91毛片视频| 国产亚洲精品免费 | 亚洲 欧美 国产 va在线影院 | 亚洲在线视频免费 | 亚洲黄色一级大片 | 久久久久久久久久网 | 国产福利精品视频 | 国产精品久久久久婷婷二区次 | 狠狠色狠狠色综合日日92 | 成人免费看片网址 | 97超碰人人澡人人爱 | a级一a一级在线观看 | 日韩欧美在线视频一区二区 | 亚洲激情视频在线 | av电影免费看 | 热re99久久精品国产66热 | 日韩在线免费小视频 | 成人一级在线 | 久久涩视频 | 国产在线最新 | 欧美精品在线一区 | 免费观看第二部31集 | 久草在线资源视频 | 久久精品一区二区三区四区 | 欧美成人精品在线 | 亚洲综合激情 | 精品国产_亚洲人成在线 | 欧美韩国在线 | 久久综合之合合综合久久 | 亚洲精品456在线播放第一页 | 亚洲国产一二三 | 日日狠狠 | 国产精品久久麻豆 | 久久综合导航 | 国产精品网站 | 国产拍在线 | 免费观看成人网 | 日日夜夜网 | www.91国产| 日韩精品一区二区三区三炮视频 | 国产一区二区在线观看免费 | 国产精品视频不卡 | ,久久福利影视 | 国产精品99久久久久久久久 | 欧美成人久久 | 91桃色在线观看视频 | 亚洲伊人av| 午夜精品久久久久久久99热影院 | 日本精品一区二区三区在线播放视频 | a视频在线观看 | 天天爱天天射天天干天天 | 亚洲激情综合 | 免费看在线看www777 | 亚洲精品美女久久久久 | 免费国产视频 | 97色婷婷成人综合在线观看 | 国产人成看黄久久久久久久久 | www.av中文字幕.com | 日韩在线视频播放 | 亚洲精选视频在线 | 国产精品久久久久久模特 | 免费高清在线视频一区· | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲精品看片 | av免费电影在线 | 99国内精品 | 久久伊人爱 | 97超碰在 | 蜜臀av性久久久久蜜臀av | 91资源在线免费观看 | 亚洲欧洲成人精品av97 | 99精品视频免费全部在线 | 中文字幕在线观看的网站 | 国产精品一区二区精品视频免费看 | 色久天 | 亚洲精品av中文字幕在线在线 | 久久精品高清视频 | 久久爱综合 | 欧美人体xx| 精品在线观看一区二区 | 天天草天天操 | 久久久久女人精品毛片 | 男女啪啪网站 | 亚洲国产视频a | 久久看毛片 | av高清一区二区三区 | 美女免费视频黄 | 免费在线观看污 | 最近最新mv字幕免费观看 | 中文字幕免费播放 | 狠狠干我 | 亚洲国产精品日韩 | 久久天堂影院 | av资源免费观看 | 97国产情侣爱久久免费观看 | 99久久精品国产一区 | 在线视频婷婷 | 久草香蕉在线 | 欧美视频日韩视频 | 免费a视频| 美女网站在线观看 | 欧美国产日韩激情 | 亚洲h视频在线 | mm1313亚洲精品国产 | 国产精品久久久久aaaa | 99久久99| 色夜影院 | 在线观看视频免费播放 | 五月婷婷六月丁香 | 四虎影视www | 东方av在线免费观看 | 欧美a级在线免费观看 | 久久精美视频 | 国产资源精品在线观看 | 国产精品久久久久av | 亚洲精品成人 | 五月婷在线播放 | 久久午夜国产 | 日韩亚洲国产精品 | 中文字幕日韩国产 | 成人毛片久久 | 九九九九九国产 | 国产精品久久网站 | 日韩xxx视频 | 中文字幕高清免费日韩视频在线 | 涩涩网站在线 | 日韩在线视频在线观看 | av在线免费不卡 | 成人久久毛片 | 亚洲最大的av网站 | 在线观看的黄色 | 国内精品久久久久影院优 | 久久女同性恋中文字幕 | 91精品国产九九九久久久亚洲 | 亚洲国产美女精品久久久久∴ | 97在线观看视频免费 | 五月天视频网站 | 国产一区二区三区四区大秀 | 久久久久久久久久电影 | 中文字幕在线观看第一区 | 日日夜夜添 | 999久久久久久 | 91资源在线播放 | 在线看片91| 99久久er热在这里只有精品15 | 国产丝袜网站 | 在线成人中文字幕 | 在线观看国产日韩 | av在线专区 | 日本狠狠色 | 亚洲高清久久久 | 亚洲日本三级 | 国产精品岛国久久久久久久久红粉 | 日韩在线不卡视频 | 天天操天天操天天操天天操 | 又黄又爽又无遮挡免费的网站 | 精品一区 在线 | 999久久久免费精品国产 | 91少妇精拍在线播放 | 黄网av在线 | 免费看色的网站 | 精品久久久久免费极品大片 | 精品中文字幕在线播放 | 激情综合色综合久久综合 | 黄色亚洲免费 | 在线视频 精品 | 国产亚洲综合在线 | 国产亚洲精品v | 97超碰资源总站 | 美女久久久久久久 | 97超碰人人在线 | 在线播放日韩av | 99精品视频精品精品视频 | 日日日天天天 | 992tv在线观看网站 | 99在线免费观看视频 | 国产精品久久久久久久av电影 | 久久久久久综合网天天 | 久久av一区二区三区亚洲 | 久久精品美女视频网站 | 亚洲精品456在线播放第一页 | 伊人国产女 | 国内精品久久久久久久影视简单 | 欧美日韩视频在线观看一区二区 | 美女黄视频免费看 | 国产精品网红福利 | 成人啪啪18免费游戏链接 | 国产又粗又长的视频 | 亚洲片在线观看 | 日韩黄色一级电影 | 久久这里只有精品23 | 亚洲欧美日韩国产一区二区 | 久久久国产精品麻豆 | 黄色日本片 | 婷婷网址 | 亚洲一二三在线 | 亚洲精品国产精品久久99 | 免费黄a大片 | 国产九色在线播放九色 | 国产视频在线观看一区二区 | 国产在线观看地址 | 欧美日韩aaaa| 精品国产一二三 | 国产高清视频网 | 精品国产一区二区三区四区在线观看 | 国产午夜三级一区二区三桃花影视 | 国产精品电影一区 | 久久国际影院 | 亚洲黄色片 | 亚洲高清在线 | 国产精品99久久久 | 天天操天天干天天插 | 精品96久久久久久中文字幕无 | 国产精品综合av一区二区国产馆 | 一区二区电影在线观看 | 久久综合九色综合欧美就去吻 | 国产黄免费 | 黄av在线| 97视频在线免费观看 | 91精品国产自产在线观看 | 小草av在线播放 | 一级大片在线观看 | 中文字幕亚洲精品在线观看 | 久久精品一级片 | 免费国产在线视频 | 国产精品美女久久久久久久久 | 日本最新高清不卡中文字幕 | 精品久久99| 91九色蝌蚪视频在线 | 国产精品久久久久久a | 久久久久福利视频 | 亚洲在线免费视频 | 黄污在线看 | 人操人| 激情视频久久 | 97国产精品一区二区 | 一区二区三区免费网站 | 91精品1区 | 在线免费av电影 | 色综合久久五月 | 激情五月综合 | 天天色天天操天天爽 | 超碰在线色 | 五月天久久综合 | 黄色软件网站在线观看 | 最近中文国产在线视频 |