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

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

?? streamingsaxbuilder.groovy

?? Groovy動態語言 運行在JVM中的動態語言 可以方便的處理業務邏輯變化大的業務
?? GROOVY
字號:
package groovy.xml

import groovy.xml.streamingmarkupsupport.AbstractStreamingBuilder
import groovy.xml.streamingmarkupsupport.StreamingMarkupWriter
import groovy.xml.streamingmarkupsupport.BaseMarkupBuilder

/*

Copyright 2004 (C) John Wilson. All Rights Reserved.

Redistribution and use of this software and associated documentation
("Software"), with or without modification, are permitted provided
that the following conditions are met:

1. Redistributions of source code must retain copyright
   statements and notices.  Redistributions must also contain a
   copy of this document.

2. Redistributions in binary form must reproduce the
   above copyright notice, this list of conditions and the
   following disclaimer in the documentation and/or other
   materials provided with the distribution.

3. The name "groovy" must not be used to endorse or promote
   products derived from this Software without prior written
   permission of The Codehaus.  For written permission,
   please contact info@codehaus.org.

4. Products derived from this Software may not be called "groovy"
   nor may "groovy" appear in their names without prior written
   permission of The Codehaus. "groovy" is a registered
   trademark of The Codehaus.

5. Due credit should be given to The Codehaus -
   http://groovy.codehaus.org/

THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

*/

import org.xml.sax.helpers.AttributesImpl
import org.xml.sax.ext.LexicalHandler

    class StreamingSAXBuilder extends AbstractStreamingBuilder {
        def pendingStack = []
        def commentClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, contentHandler ->
                                      if (contentHandler instanceof LexicalHandler) {
                                          contentHandler.comment(body.toCharArray(), 0, body.size())
                                      }
                                   }
        def piClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, contentHandler ->
                                  attrs.each {target, instruction ->
                                     if (instruction instanceof Map) {
                                     def buf = new StringBuffer()
                                        
                                        instruction.each { name, value ->
                                          if (value.toString().contains('"')) {
                                            buf.append(" $name='$value'")
                                          } else {
                                            buf.append(" $name=\"$value\"" )                                        
                                          }
                                        }
                                        contentHandler.processingInstruction(target, buf.toString())
                                      } else {
                                        contentHandler.processingInstruction(target, instruction)
                                      }
                                    }
                               }
        def noopClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, contentHandler ->
                                  if (body instanceof Closure) {
                                    def body1 = body.clone()
                                    
                                    body1.delegate = doc
                                    body1(doc)
                                  } else if (body instanceof Buildable) {
                                    body.build(doc)
                                  } else if (body != null) {
                                    body.each {
                                      if (it instanceof Closure) {
                                        def body1 = it.clone()
                                        
                                        body1.delegate = doc
                                        body1(doc)
                                      } else if (it instanceof Buildable) {
                                        it.build(doc)
                                      } else {
                                          def chars = it.toCharArray()
                                          contentHandler.characters(chars, 0, chars.size())
                                        }
                                      }
                                  }
                                }
        def tagClosure = {tag, doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, contentHandler ->
                                  def attributes = new AttributesImpl()
          
                                  attrs.each {key, value ->
                                          if (key.contains('$')) {
                                              def parts = key.tokenize('$')
          
                                              if (namespaces.containsKey(parts[0])) {
                                                  def namespaceUri = namespaces[parts[0]]          
                                                  attributes.addAttribute(namespaceUri, parts[1], "${parts[0]}:${parts[1]}", "CDATA", value)
                                              } else {
                                                  throw new GroovyRuntimeException("bad attribute namespace tag in ${key}")
                                              }
                                          } else {
                                              attributes.addAttribute("", key, key, "CDATA", value)
                                          }
                                    }
          
                                  def hiddenNamespaces = [:]
          
                                  pendingNamespaces.each {key, value ->
                                      hiddenNamespaces[key] = namespaces[key]
                                      namespaces[key] = value
                                      attributes.addAttribute("http://www.w3.org/2000/xmlns/", key, "xmlns:${key}", "CDATA", value)
                                      contentHandler.startPrefixMapping(key, value)
                                  }
          
                                  // setup the tag info
          
                                  def uri = ""
                                  def qualifiedName = tag
          
                                  if (prefix != "") {
                                      if (namespaces.containsKey(prefix)) {
                                          uri = namespaces[prefix]
                                      } else if (pendingNamespaces.containsKey(prefix)) {
                                          uri = pendingNamespaces[prefix]
                                      } else {
                                          throw new GroovyRuntimeException("Namespace prefix: ${prefix} is not bound to a URI")
                                      }
          
                                      if (prefix != ":") {
                                          qualifiedName = prefix + ":" + tag
                                      }
                                  }
          
                                  contentHandler.startElement(uri, tag, qualifiedName, attributes)
          
                                  if (body != null) {
                                      pendingStack.add pendingNamespaces.clone()
                                      pendingNamespaces.clear()
          
                                      if (body instanceof Closure) {
                                        def body1 = body.clone()
                                        
                                        body1.delegate = doc
                                        body1(doc)
                                      } else if (body instanceof Buildable) {
                                        body.build(doc)
                                      } else {
                                        body.each {
                                          if (it instanceof Closure) {
                                            def body1 = it.clone()
                                            
                                            body1.delegate = doc
                                            body1(doc)
                                          } else if (it instanceof Buildable) {
                                            it.build(doc)
                                          } else {
                                              def chars = it.toCharArray()
                                              contentHandler.characters(chars, 0, chars.size())
                                            }
                                          }
                                      }
          
                                      pendingNamespaces.clear()
                                      pendingNamespaces.putAll pendingStack.pop()
                                  }
          
                                  contentHandler.endElement(uri, tag, qualifiedName)
          
                                  hiddenNamespaces.each {key, value ->
                                                              contentHandler.endPrefixMapping(key)
          
                                                              if (value == null) {
                                                                  namespaces.remove key
                                                              } else {
                                                                  namespaces[key] = value
                                                              }
                                                         }
                              }

        def builder = null

        StreamingSAXBuilder() {
            specialTags.putAll(['yield':noopClosure,
                                'yieldUnescaped':noopClosure,
                                'comment':commentClosure,
                                'pi':piClosure])

            def nsSpecificTags = [':'                                          : [tagClosure, tagClosure, [:]],    // the default namespace
                                  'http://www.w3.org/XML/1998/namespace'           : [tagClosure, tagClosure, [:]],
                                  'http://www.codehaus.org/Groovy/markup/keywords' : [badTagClosure, tagClosure, specialTags]]

            this.builder = new BaseMarkupBuilder(nsSpecificTags)
        }

        public bind(closure) {
            def boundClosure = this.builder.bind(closure)

            return {contentHandler ->
                boundClosure.trigger = contentHandler
            }
        }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合一区二区| 91精品国产入口| 国产一区欧美一区| 久久99在线观看| 美女爽到高潮91| 国产一区二区在线观看免费| 蜜臀av一级做a爰片久久| 美日韩一区二区| 韩国欧美一区二区| 国产原创一区二区| 国产不卡视频一区| 91性感美女视频| 欧美日韩三级在线| 日韩欧美一区二区视频| 精品国产一区a| 国产精品三级视频| 亚洲另类在线一区| 天天综合色天天| 国产专区综合网| 97精品国产97久久久久久久久久久久| 色综合久久综合| 91精品国产色综合久久ai换脸| 精品国产乱码久久久久久免费| 国产午夜亚洲精品午夜鲁丝片| 国产精品黄色在线观看| 亚洲小说春色综合另类电影| 看电视剧不卡顿的网站| 成人av资源在线| 欧美日韩一级片网站| 欧美精品一区二区三区蜜臀| 亚洲欧美一区二区不卡| 日韩电影在线一区二区| 波多野结衣精品在线| 欧美日韩的一区二区| 久久精品亚洲精品国产欧美| 亚洲精品高清视频在线观看| 激情丁香综合五月| 欧美性高清videossexo| 国产亚洲欧美一区在线观看| 亚洲一区日韩精品中文字幕| 国产精品一区在线| 在线不卡中文字幕播放| 国产精品成人免费在线| 六月婷婷色综合| 欧美日韩一区不卡| **性色生活片久久毛片| 久久国产尿小便嘘嘘尿| 欧美日本在线播放| 《视频一区视频二区| 国产福利不卡视频| 欧美一三区三区四区免费在线看| 亚洲图片激情小说| 国产乱人伦精品一区二区在线观看| 欧美日韩一区国产| 亚洲日本一区二区| 国产成人av电影在线观看| 日韩欧美精品在线视频| 一区二区三区国产| 91色九色蝌蚪| 国产精品久久久久久久久免费相片| 九九精品一区二区| 91精品国产手机| 日日摸夜夜添夜夜添国产精品| 日本道色综合久久| 亚洲女性喷水在线观看一区| 风间由美性色一区二区三区| 久久网站最新地址| 国内成人精品2018免费看| 欧美一级二级三级乱码| 五月天一区二区| 67194成人在线观看| 日韩高清国产一区在线| 欧美电影影音先锋| 免费在线观看日韩欧美| 日韩一区二区三区视频在线| 婷婷综合在线观看| 日韩一区二区免费在线电影| 蜜桃视频一区二区| 精品美女在线播放| 国产一区二区三区| 国产女人aaa级久久久级| 国产裸体歌舞团一区二区| 久久免费的精品国产v∧| 国产一区二区三区免费| 国产欧美日韩卡一| 一本一道波多野结衣一区二区| 亚洲一区二区三区四区在线| 欧美日韩电影在线| 精品一区二区在线看| 中文字幕不卡在线播放| 一本色道久久综合狠狠躁的推荐| 亚洲电影第三页| 久久综合999| 国产成人精品aa毛片| 亚洲三级视频在线观看| 欧美一级搡bbbb搡bbbb| 国产福利一区二区三区视频| 一区二区三区免费看视频| 在线播放中文字幕一区| 国产传媒欧美日韩成人| 亚洲精品国产精华液| 日韩欧美激情在线| 99在线精品一区二区三区| 日韩精品视频网站| 国产视频一区在线播放| 色菇凉天天综合网| 九九久久精品视频| 亚洲精品欧美专区| 久久亚区不卡日本| 欧美亚洲国产一区在线观看网站| 久久精品国内一区二区三区| 中文字幕欧美一区| 日韩欧美国产精品一区| 99视频热这里只有精品免费| 蜜桃av一区二区在线观看 | 国产美女视频91| 亚洲另类一区二区| 久久久久国产成人精品亚洲午夜| 色综合视频在线观看| 国产最新精品免费| 亚洲一区二区三区影院| 中文字幕免费不卡| 精品区一区二区| 欧美日韩不卡一区| 91色九色蝌蚪| 9i在线看片成人免费| 国产高清精品网站| 男人的天堂久久精品| 亚洲激情五月婷婷| 国产精品免费丝袜| 久久综合九色综合欧美就去吻| 精品视频999| 在线观看欧美黄色| 97精品国产97久久久久久久久久久久| 久久成人麻豆午夜电影| 日韩精品欧美成人高清一区二区| 自拍偷自拍亚洲精品播放| 中文字幕不卡的av| 国产色综合一区| 精品精品国产高清a毛片牛牛 | 中文字幕第一区二区| 亚洲精品一区二区三区99| 91麻豆精品国产无毒不卡在线观看| 欧美亚洲综合网| 色综合久久六月婷婷中文字幕| 99热精品国产| 91色视频在线| 91麻豆国产福利在线观看| 成人免费看黄yyy456| 成人午夜电影久久影院| 成人一区在线观看| av在线不卡免费看| av在线不卡观看免费观看| 91亚洲午夜精品久久久久久| 91免费观看视频在线| 97久久精品人人做人人爽| 91蜜桃视频在线| 日本福利一区二区| 欧美日韩电影一区| 在线综合亚洲欧美在线视频| 欧美一区二区福利在线| 精品国产一区二区三区忘忧草| 26uuu精品一区二区| 久久毛片高清国产| 国产精品萝li| 一区二区三区不卡视频在线观看| 亚洲国产乱码最新视频| 五月天婷婷综合| 久久国产三级精品| 成人黄色小视频在线观看| fc2成人免费人成在线观看播放 | 精品欧美一区二区久久| 久久精品一区二区| 国产精品乱人伦| 亚洲一二三区不卡| 美女在线观看视频一区二区| 国产成人日日夜夜| 99r国产精品| 911国产精品| 久久综合狠狠综合久久综合88| 国产精品你懂的在线| 亚洲一区二区在线观看视频| 久久精品国产99| 97超碰欧美中文字幕| 欧美老肥妇做.爰bbww| 久久精品水蜜桃av综合天堂| 亚洲欧美日韩国产成人精品影院| 午夜日韩在线观看| 国产综合色精品一区二区三区| 99精品1区2区| 日韩三级电影网址| 亚洲精品国产成人久久av盗摄| 青青草原综合久久大伊人精品| 高清beeg欧美| 日韩一区二区视频在线观看| 中文天堂在线一区| 久久电影网站中文字幕| 91高清视频免费看| 国产欧美一区二区三区在线老狼| 亚洲高清中文字幕|