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

首頁 > 學院 > 開發設計 > 正文

Xalan-Java XSLT處理器及其分割功能

2019-11-18 13:16:34
字體:
來源:轉載
供稿:網友

  xml數據有各種各樣的格式。然而,XML文檔中的數據格式不一定符合目標系統的規范。XMLT模板常被采用來把一種格式轉換為另一種格式。不幸的是,XSLT的方法僅僅提供一套有限的功能執行這些轉換。
  
  Apache軟件基金的Xalan項目包括java和C++兩種版本的XSLT處理器。這個處理器提供解析XML文檔的功能,并使用XSLT模板來轉換它們。除了標準的XSLT轉換以外,Xalan也提供一把擴展方法。在擴展庫提供的這些方法中,有一個字符串tokenizer把字符串分割成一組token。
  
  問題領域
  精確的一組XML轉換用tokenize方法。任何時候,當你需要把字符串以一致的樣式分解為子串,可以采用tokenize方法。實際上,tokenize方法是一個XSLT方法,它帶兩個參數。第一個參數指定要被分割的字符串。第二個參數指定把字符串分解為一組字符串token的分隔符。
  
  tokenize方法的結果是一組表示token的節點。這些token和節點可以使用iterator或者作為單個值來處理。你可以用tokenizer把字符串分解為一組單個值,從一個長字符串獲取單個token。
  
  例子
  為了舉例說明tokenize方法的用法,我們看一個使用它的例子。下面是包含需要我們分割的字符串的一個XML文檔:
  
  <CustomerAddress>
  <Address1>9399 W Higgins Street</Address1>
  <Address2>Rosemont, IL 60018</Address2>
  </CustomerAddress>
  這個例子演示了系統的一個客戶地址記錄,包含兩行地址。這是在系統中一個相當普遍的情形,地址信息僅當發郵件時使用,而實際的城市、州和郵編信息并不非凡重要。不幸的是,許多系統希望地址信息被分成城市、州和郵編。需要一個機制把組合的<Address2>元素分成單獨的城市、州和郵編元素。
  
  方案
  為了把數據以恰當的格式提供給目標系統,我使用Xalan的tokenize擴展功能。這個方法基于一組分割符把一個字符串,比如像地址,分割成多個token。假如沒有指定分割符,使用默認的空格符號作為分割符。在我們的例子中,使用的分割符包括空格符號和逗號。
  
  我們從XSLT模板創建表格開始。下面是我們期待的經過轉換得來的輸出:
  
  <CustomerAddress>
  <Address>9399 W Higgins Street</Address>
  <City>Rosemont</City>
  <State>IL</State>
  <Zip>60018</Zip>
  </CustomerAddress>
  正當你看到的那樣,我們想把<Address1>元素轉換成<Address>元素,并把<Address2>元素分割成<City>、<State>和<Zip>元素。為使用tokenize方法,我們如下創建一個模板來調用它:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xalan="http://xml.apache.org/xalan">
  <xsl:template match="/">
  <xsl:for-each select="http://CustomerAddress">
  <Address><xsl:value-of select="Address1"/></Address>
  <City><xsl:value-of select="xalan:tokenize(Address2, ' ,')[1]"/></City>
  <State><xsl:value-of select="xalan:tokenize(Address2, ' ,')[2]"/></State>
  <Zip><xsl:value-of select="xalan:tokenize(Address2, ' ,')[3]"/></Zip>
  </xsl:for-each>
  </xsl:template>
  </xsl:stylesheet>
  
  有兩個地方需要非凡注重。第一個在<xsl:stylesheet>元素里面。這里,我們定義了xalan名字空間。這個很重要,因為tokenize方法是xalan名字空間的一部分。假如沒有恰當的名字空間定義,處理器不會知道xalan名字空間。
  
  第二需要注重的是一組叫City, State和Zip的元素。對每一個這些元素,我們調用tokenize方法。tokenize方法總是返回一個nodeset。為了給這些元素提供單個值,必須給nodeset的單個節點賦值。為了做到這一點,我們給tokenize調用的前面添加一個索引(即,[1],[2],[3])。
  這些索引指示出取出哪個token。City是地一個token,State是第二個token,Zip是第三個。
  
  tokenize方法自身帶有兩個參數。第一個參數是我們分割的值(這個例子中是<Address2>元素)。第二個參數是分隔符列表。我們使用包含在字符串‘ ,’——包含一個空格符號和一個逗號中的分隔符分割這個字符串。
  
  在XML轉換中分割字符串很普遍。為了無縫的處理這個問題,Apache XML項目和Xalan組已經添加了一個叫做tokenize的擴展方法來處理XML數據值的分割。訪問Xalan網頁,可以發現更多關于Xalan-Java XSLT處理器和tokenize方法的信息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久手机免费视频| 日韩高清人体午夜| 亚洲欧洲在线免费| 国产精品久久一区| 国产精品久久91| 亚洲视频自拍偷拍| 国产在线观看一区二区三区| 欧美激情在线观看视频| 国产精品91在线| 国产精品久久久久aaaa九色| xxxxx成人.com| 永久555www成人免费| 欧美肥老太性生活视频| 中文字幕亚洲国产| 国产精品视频色| 亚洲国产成人爱av在线播放| 亚洲国产小视频在线观看| 国产精品亚洲美女av网站| 国产精品成久久久久三级| 久久躁狠狠躁夜夜爽| 亚洲精品97久久| 精品视频—区二区三区免费| 欧美激情2020午夜免费观看| 91精品国产高清久久久久久91| 米奇精品一区二区三区在线观看| www日韩欧美| 国产精品国产三级国产aⅴ浪潮| 亚洲国产精品久久91精品| 久久久久久91香蕉国产| 国产在线精品播放| 久久天天躁狠狠躁夜夜爽蜜月| 91老司机在线| 成人欧美一区二区三区在线湿哒哒| 欧美激情a∨在线视频播放| 日韩av电影国产| 国产精品网红福利| 伊人成人开心激情综合网| 欧美xxxx18国产| 欧美在线视频观看免费网站| 日韩在线免费视频观看| 91在线高清免费观看| 日韩精品一区二区视频| www.亚洲一区| 91午夜在线播放| 亚洲国内精品在线| 亚洲成色777777女色窝| 日韩成人激情在线| 国产精品成人免费视频| 91久久精品在线| 欧美性黄网官网| 国产一区二区动漫| 国产大片精品免费永久看nba| 欧美激情视频在线免费观看 欧美视频免费一| 久久精品人人做人人爽| 7m精品福利视频导航| 欧美乱大交xxxxx| 欧美日本高清视频| 最近免费中文字幕视频2019| 欧美一二三视频| 欧美激情一区二区三区在线视频观看| 中文字幕久热精品在线视频| 超碰精品一区二区三区乱码| 欧洲亚洲女同hd| 日韩av在线影院| 国产日韩欧美黄色| 欧美一级免费看| xvideos亚洲人网站| 日韩中文字幕在线精品| 国产视频亚洲视频| 欧美性视频在线| 7777精品视频| www.欧美精品| 欧美一二三视频| 久久精品91久久香蕉加勒比| 欧美成人三级视频网站| 亚洲视频免费一区| 色阁综合伊人av| 国产一区二区三区在线免费观看| 亚洲欧美国产精品| 51精品在线观看| 性色av香蕉一区二区| 91久久精品日日躁夜夜躁国产| 91精品国产成人www| 国产日韩视频在线观看| 欧美性理论片在线观看片免费| 美女扒开尿口让男人操亚洲视频网站| 国产精品一区二区av影院萌芽| 亚洲国产成人精品一区二区| 欧美肥婆姓交大片| 久久6精品影院| 国产精品久久久久aaaa九色| 欧美一级片免费在线| 国产在线精品播放| 欧美日韩亚洲成人| 91久久国产综合久久91精品网站| 国产成人精品久久| 精品国产视频在线| 久久久久久亚洲精品中文字幕| 国产日韩欧美在线| …久久精品99久久香蕉国产| 中文字幕一区二区三区电影| 日韩欧美国产网站| 奇米一区二区三区四区久久| 欧美午夜性色大片在线观看| 亚洲男人天堂九九视频| 国产欧美一区二区白浆黑人| 亚洲精品久久久久| 国产精品嫩草影院一区二区| 国产福利成人在线| 国产精品国产三级国产aⅴ浪潮| 国产在线播放91| 91成人免费观看网站| 精品久久久香蕉免费精品视频| 情事1991在线| 美女精品视频一区| 欧美性xxxxx| 欧美在线视频一二三| 久久综合五月天| 亚洲午夜精品久久久久久性色| 久久夜色精品国产亚洲aⅴ| 欧美激情精品久久久久久大尺度| 亚洲一区二区三区视频| 欧美在线视频免费观看| 久久久久久久网站| 久操成人在线视频| 欧美与黑人午夜性猛交久久久| 国产日韩欧美中文在线播放| 国产精品福利在线| 国产主播喷水一区二区| 国产一区玩具在线观看| 亚洲丁香婷深爱综合| 尤物精品国产第一福利三区| 浅井舞香一区二区| 日韩国产精品一区| www.亚洲男人天堂| 国产亚洲精品综合一区91| 欧美成aaa人片免费看| 91精品国产自产在线| 亚洲免费一在线| 亚洲人精选亚洲人成在线| 国产精欧美一区二区三区| 国产成人综合精品| 九九九久久久久久| 亚洲伊人一本大道中文字幕| 亚洲视屏在线播放| 久久九九免费视频| 国产日韩欧美夫妻视频在线观看| 久久av中文字幕| 久久激情视频免费观看| 日韩精品视频在线免费观看| 国产精品99蜜臀久久不卡二区| 最近2019中文字幕mv免费看| 国产欧美精品一区二区三区-老狼| 亚洲韩国欧洲国产日产av| 欧美性猛xxx| 中文字幕亚洲欧美日韩在线不卡| 精品自拍视频在线观看| 久久精品久久久久久国产 免费| 91免费版网站入口| 日本国产精品视频| 国产精品欧美激情在线播放| 日本不卡高字幕在线2019| 日韩av综合网站| 欧美精品videossex性护士|