新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论XLink, XPointer, XQuery
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XQuery/XLink/XPointer/ 』 → 一个使用xquery的例子 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 18015 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 一个使用xquery的例子 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     whqwzy 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:88
      门派:XML.ORG.CN
      注册:2004/8/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给whqwzy发送一个短消息 把whqwzy加入好友 查看whqwzy的个人资料 搜索whqwzy在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看whqwzy的博客楼主
    发贴心情 一个使用xquery的例子

    看到有人问如何使用xquery,其实我也是个菜鸟。
    刚刚运行了两个例子,给不会的指个路。
    首先下载saxon8.1.1   http://saxon.sourceforge.net/
    Saxon-B 8.1.1是免费的,Saxon-SA 8.1.1是有试用期的,前者就够了。
    系统要安装jdk1.4.1以上版本,因为saxon是用这个版本写的,但不知道1.3.1行不。
    记得设置JAVA_HOME环境变量指向jdk。
    然后,试试吧!

    例子:文件characters.xml

    <characters>
    <character>
        <name>Aleria</name>
        <gender>Female</gender>
        <species>Heroleim</species>
        <vocation>Bard</vocation>
        <level>5</level>
        <health>25</health>
    </character>
    <character>
        <name>Shar</name>
        <gender>Male</gender>
        <species>Human</species>
        <vocation>Merchant</vocation>
        <level>6</level>
        <health>28</health>
    </character>
    <character>
        <name>Gite</name>
        <gender>Female</gender>
        <species>Aelvar</species>
        <vocation>Mage</vocation>
        <level>7</level>
        <health>18</health>
    </character>
    <character>
        <name>Horukkan</name>
        <gender>Male</gender>
        <species>Udrecht</species>
        <vocation>Warrior</vocation>
        <level>5</level>
        <health>32</health>
    </character>
    <character>
        <name>Gounna</name>
        <gender>Female</gender>
        <species>Noleim</species>
        <vocation>Mage</vocation>
        <level>8</level>
        <health>31</health>
    </character>
    <character>
        <name>Sheira</name>
        <gender>Female</gender>
        <species>Human</species>
        <vocation>Cleric</vocation>
        <level>4</level>
        <health>17</health>
    </character>
    <character>
        <name>Drue</name>
        <gender>Female</gender>
        <species>Voleim</species>
        <vocation>Warrior</vocation>
        <level>6</level>
        <health>32</health>
    </character>
    <character>
        <name>Paccu</name>
        <gender>Male</gender>
        <species>Human</species>
        <vocation>Merchant</vocation>
        <level>5</level>
        <health>24</health>
    </character>
    </characters>

    查询文件:Date.xquery
    for $character in doc('characters.xml')//character
    order by $character/name descending
    return
          <dateReport>
                {$character/name}
                
          </dateReport>
    (: Stylus Studio meta-information - (c)1998-2003. Sonic Software Corporation. All rights reserved.
    <metaInformation>
    <scenarios/><MapperInfo><TargetSchema SchemaFilePath="" SchemaRoot="" AssociatedInstance=""/></MapperInfo>
    </metaInformation>
    :)

    在命令提示下,输入:
    set classpath=d:\saxon\saxon8.jar (saxon8.jar所在文件夹)
    java net.sf.saxon.Query -s characters.xml Date.xquery
    ok!
    看结果吧!

    D:\xml>java net.sf.saxon.Query -s characters.xml Date.xquery
    <?xml version="1.0" encoding="UTF-8"?>
    <dateReport>
       <name>Sheira</name>
    </dateReport>
    <dateReport>
       <name>Shar</name>
    </dateReport>
    <dateReport>
       <name>Paccu</name>
    </dateReport>
    <dateReport>
       <name>Horukkan</name>
    </dateReport>
    <dateReport>
       <name>Gounna</name>
    </dateReport>
    <dateReport>
       <name>Gite</name>
    </dateReport>
    <dateReport>
       <name>Drue</name>
    </dateReport>
    <dateReport>
       <name>Aleria</name>
    </dateReport>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/12 21:51:00
     
     whqwzy 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:88
      门派:XML.ORG.CN
      注册:2004/8/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给whqwzy发送一个短消息 把whqwzy加入好友 查看whqwzy的个人资料 搜索whqwzy在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看whqwzy的博客2
    发贴心情 
    其实saxon据说是第一个实现xpath2.0和xslt2.0的,因为他的作者就是xpath组委会的。
    下面给个例子关于使用xslt2.0。

    源文件:ch07_01.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <document>

        <data
            city="Glendale"
            people="194973"
            state="California"
        />

        <data
            city="Fresno"
            people="457652"
            state="California"
        />

        <data
            city="Sacramento"
            people="407018"
            state="California"
        />

        <data
            city="Oakland"
            people="399484"
            state="California"
        />

        <data
            city="Boston"
            people="589141"
            state="Massachusetts"
        />

        <data
            city="Cambridge"
            people="101359"
            state="Massachusetts"
        />

        <data
            city="Pittsburgh"
            people="334563"
            state="Pennsylvania"
        />

        <data
            city="Erie"
            people="103707"
            state="Pennsylvania"
        />

        <data
            city="Allentown"
            people="106632"
            state="Pennsylvania"
        />

    </document>

    xsl文件:ch07_02.xsl

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

        <xsl:template match="document">
        <HTML>

            <HEAD>
                <TITLE>City Data</TITLE>
            </HEAD>

            <BODY>

                <H1>City Data</H1>

                <TABLE BORDER="1" CELLPADDING="5">

    <xsl:for-each-group select="data" group-by="@state">
        <TR>
            <TD>
                <xsl:value-of select="@state"/>
            </TD>
            <TD>
                Number of People:
                <xsl:value-of
                    select="sum(current-group()/@people)"/>
            </TD>
            <TD>
                Cities Used:
                <xsl:value-of select="current-group()/@city"
                    separator=" "/>
            </TD>
        </TR>
    </xsl:for-each-group>

                </TABLE>

            </BODY>

        </HTML>
        </xsl:template>

    </xsl:stylesheet>

    命令:java net.sf.saxon.Transform ch07_01.xml ch07_02.xsl >result.html
    然后打开result.html可看到结果

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/12 22:05:00
     
     hui_xml 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:66
      门派:XML.ORG.CN
      注册:2004/12/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hui_xml发送一个短消息 把hui_xml加入好友 查看hui_xml的个人资料 搜索hui_xml在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hui_xml的博客3
    发贴心情 
    高手帮我看看
    我运行上的代码出这种错误:
        D:\作业\xml>java net.sf.saxon.Query -s characters.xml Date.xquery
    Exception in thread "main" java.lang.NoClassDefFoundError: org/w3c/dom/TypeInfo
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
            at net.sf.saxon.type.Type.<clinit>(Type.java:72)
            at net.sf.saxon.functions.VendorFunctionLibrary.init(VendorFunctionLibra
    ry.java:57)
            at net.sf.saxon.functions.VendorFunctionLibrary.<init>(VendorFunctionLib
    rary.java:25)
            at net.sf.saxon.Configuration.getVendorFunctionLibrary(Configuration.jav
    a:304)
            at net.sf.saxon.query.StaticQueryContext.reset(StaticQueryContext.java:9
    8)
            at net.sf.saxon.query.StaticQueryContext.<init>(StaticQueryContext.java:
    68)
            at net.sf.saxon.Query.doMain(Query.java:92)
            at net.sf.saxon.Query.main(Query.java:75)
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/29 19:17:00
     
     kittypig 美女呀,离线,快来找我吧!
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:332
      门派:XML.ORG.CN
      注册:2004/7/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给kittypig发送一个短消息 把kittypig加入好友 查看kittypig的个人资料 搜索kittypig在『 XQuery/XLink/XPointer/ 』的所有贴子 引用回复这个贴子 回复这个贴子 查看kittypig的博客4
    发贴心情 
    可否讲更详细些?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/24 11:07:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XQuery/XLink/XPointer/ 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/2 11:10:14

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    253.906ms