<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-7  評(píng)論-15  文章-0  trackbacks-0

    一、使用eclipse新建一個(gè)java project
    二、把saxon的jar包放入classpath(我用的jar包是saxon9ee.jar)
    三、新建package,然后新建一個(gè)xml文件(cd_catalog.xml),其內(nèi)容如下:
    <?xml version="1.0" encoding="ISO-8859-1"?>
        <CATALOG>
             <CD>
                  <TITLE>Empire Burlesque</TITLE>
                  <ARTIST>Bob Dylan</ARTIST>
                  <COUNTRY>USA</COUNTRY>
                   <COMPANY>Columbia</COMPANY>
                  <PRICE>10.90</PRICE>
                  <YEAR>1985</YEAR>
             </CD>
             <CD>
                  <TITLE>Hide your heart</TITLE>
                  <ARTIST>Bonnie Tyler</ARTIST>
                  <COUNTRY>UK</COUNTRY>
                  <COMPANY>CBS Records</COMPANY>
                  <PRICE>9.90</PRICE>
                  <YEAR>1988</YEAR>
             </CD>
             <CD>
                  <TITLE>Greatest Hits</TITLE>
                  <ARTIST>Dolly Parton</ARTIST>
                  <COUNTRY>USA</COUNTRY>
                  <COMPANY>RCA</COMPANY>
                  <PRICE>9.90</PRICE>
                  <YEAR>1982</YEAR>
             </CD>
             <CD>
                  <TITLE>Still got the blues</TITLE>
                  <ARTIST>Gary Moore</ARTIST>
                  <COUNTRY>UK</COUNTRY>
                  <COMPANY>Virgin records</COMPANY>
                  <PRICE>10.20</PRICE>
                  <YEAR>1990</YEAR>
             </CD>
             <CD>
                  <TITLE>Eros</TITLE>
                  <ARTIST>Eros Ramazzotti</ARTIST>
                  <COUNTRY>EU</COUNTRY>
                  <COMPANY>BMG</COMPANY>
                  <PRICE>9.90</PRICE>
                  <YEAR>1997</YEAR>
             </CD>
             <CD>
                  <TITLE>One night only</TITLE>
                  <ARTIST>Bee Gees</ARTIST>
                  <COUNTRY>UK</COUNTRY>
                  <COMPANY>Polydor</COMPANY>
                  <PRICE>10.90</PRICE>
                  <YEAR>1998</YEAR>
             </CD>
             <CD>
                  <TITLE>Sylvias Mother</TITLE>
                  <ARTIST>Dr.Hook</ARTIST>
                  <COUNTRY>UK</COUNTRY>
                  <COMPANY>CBS</COMPANY>
                  <PRICE>8.10</PRICE>
                  <YEAR>1973</YEAR>
             </CD>
             <CD>
                    <TITLE>Maggie May</TITLE>
                  <ARTIST>Rod Stewart</ARTIST>
                  <COUNTRY>UK</COUNTRY>
                  <COMPANY>Pickwick</COMPANY>
                  <PRICE>8.50</PRICE>
                  <YEAR>1990</YEAR>
             </CD>
             <CD>
                   <TITLE>Romanza</TITLE>
                  <ARTIST>Andrea Bocelli</ARTIST>
                  <COUNTRY>EU</COUNTRY>
                  <COMPANY>Polydor</COMPANY>
                  <PRICE>10.80</PRICE>
                  <YEAR>1996</YEAR>
           </CD>
             <CD>
                  <TITLE>When a man loves a woman</TITLE>
                  <ARTIST>Percy Sledge</ARTIST>
                  <COUNTRY>USA</COUNTRY>
                  <COMPANY>Atlantic</COMPANY>
                  <PRICE>8.70</PRICE>
                  <YEAR>1987</YEAR>
             </CD>
       </CATALOG>
            
    四、新建一個(gè)java class(XqueryTest.java)

    import java.io.IOException;
    import java.util.Properties;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;

    import org.w3c.dom.Document;
    import org.xml.sax.SAXException;

    import net.sf.saxon.Configuration;
    import net.sf.saxon.dom.*;
    import net.sf.saxon.query.DynamicQueryContext;
    import net.sf.saxon.query.StaticQueryContext;
    import net.sf.saxon.query.XQueryExpression;
    import net.sf.saxon.trans.XPathException;

    public class XqueryTest {
     /**
      * 執(zhí)行查詢
      */
     public static void select(){
      //文件
      String fileString = "src/study/xquery/cd_catalog.xml";
      //查詢語(yǔ)句
      String query = " for $s in //CD/TITLE "
        + " return $s";
      //生產(chǎn)文檔對(duì)象
      Document document = getDocument(fileString);
      Configuration configuration = new Configuration();
      StaticQueryContext context = new StaticQueryContext(configuration, false);
      //查詢表達(dá)式對(duì)象
      XQueryExpression expression = null;
      try {
       expression = context.compileQuery(query);
       DynamicQueryContext context2 = new DynamicQueryContext(configuration);
       context2.setContextItem(new DocumentWrapper(document,null,configuration));
       
       final Properties props = new Properties();
                props.setProperty(OutputKeys.METHOD, "xml");
                props.setProperty(OutputKeys.INDENT, "yes");
                //執(zhí)行查詢,并輸出查詢結(jié)果
                expression.run(context2, new StreamResult(System.out), props);
      } catch (XPathException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      
     }
     /**
      * 生產(chǎn)文檔對(duì)象
      *
      * @param xml   文件名
      * @return
      */
     public static Document getDocument(String xml){
      DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder;
      Document document = null;
      try {
       builder = builderFactory.newDocumentBuilder();
       document = builder.parse(xml);
      } catch (ParserConfigurationException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (SAXException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      document.normalize();
      return document;
     }
     /**
      * 輸入生成的文檔內(nèi)容
      *
      * @param doc
      */
     public static void output(Document doc){
      TransformerFactory factory = TransformerFactory.newInstance();
      Transformer transformer = null;
      try {
       transformer = factory.newTransformer();
       Properties properties = transformer.getOutputProperties();
       properties.setProperty(OutputKeys.INDENT, "yes");
                properties.setProperty(OutputKeys.ENCODING, "GB2312");
                properties.setProperty(OutputKeys.METHOD, "xml");
                properties.setProperty(OutputKeys.VERSION, "1.0");
                transformer.setOutputProperties(properties);
               
                DOMSource source = new DOMSource(doc);
                StreamResult result = new StreamResult(System.out);
                transformer.transform(source, result);
       
      } catch (TransformerConfigurationException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (TransformerException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     public static void main(String[] args) {
      select();
     }
    }


    五、運(yùn)行結(jié)果
    <?xml version="1.0" encoding="UTF-8"?>
    <TITLE>Empire Burlesque</TITLE>
    <TITLE>Hide your heart</TITLE>
    <TITLE>Greatest Hits</TITLE>
    <TITLE>Still got the blues</TITLE>
    <TITLE>Eros</TITLE>
    <TITLE>One night only</TITLE>
    <TITLE>Sylvias Mother</TITLE>
    <TITLE>Maggie May</TITLE>
    <TITLE>Romanza</TITLE>
    <TITLE>When a man loves a woman</TITLE>
    posted on 2009-10-07 17:14 腳踏實(shí)地 閱讀(1183) 評(píng)論(0)  編輯  收藏 所屬分類: start XQuery
    主站蜘蛛池模板: 99热在线免费观看| 九九免费观看全部免费视频| 99re6在线视频精品免费| 亚洲免费视频网站| 亚洲区小说区图片区| 亚洲乱理伦片在线观看中字| 91人成网站色www免费下载| 亚洲精品狼友在线播放| 日本一区二区三区在线视频观看免费 | 九九美女网站免费| 亚洲成?Ⅴ人在线观看无码| 中日韩亚洲人成无码网站| 亚洲黄色免费网站| 日韩精品亚洲人成在线观看| 精选影视免费在线 | 亚洲国产精品碰碰| 午夜亚洲乱码伦小说区69堂| 青青草国产免费久久久下载| 亚洲一区AV无码少妇电影| 一二三四在线观看免费高清中文在线观看| 亚洲人成影院在线| 成人无码WWW免费视频| 亚洲精品国产精品乱码视色 | 中国亚洲呦女专区| 毛片免费在线视频| 国产精品亚洲综合久久| 久久综合AV免费观看| 中文字幕亚洲情99在线| 成年人免费视频观看| 亚洲Av无码国产一区二区| 成人永久免费高清| 狼色精品人妻在线视频免费| 亚洲av成人一区二区三区在线观看 | 日韩精品视频在线观看免费| 免费人成网站在线高清| 美女被爆羞羞网站在免费观看| 免费在线观看的黄色网址| WWW国产成人免费观看视频| 亚洲精品少妇30p| 99久久国产免费中文无字幕| 亚洲成aⅴ人片在线影院八|