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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 想通过xslt判断xml中的元素进行相应的类型划分 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6001 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 想通过xslt判断xml中的元素进行相应的类型划分 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     自由风 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:154
      门派:XML.ORG.CN
      注册:2006/12/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给自由风发送一个短消息 把自由风加入好友 查看自由风的个人资料 搜索自由风在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看自由风的博客楼主
    发贴心情 想通过xslt判断xml中的元素进行相应的类型划分

    输入文件input.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <requestinfo>
     <VSITEID>1000000000000234</VSITEID>
     <CERCs>
      <CERC>181</CERC>
      <CERC>182</CERC>
     </CERCs>
     <VPN>108</VPN>
     <SR>219</SR>
    </requestinfo>


    想得到的out.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <requestinfo>
     <data>
      <type>1</type>
      <VSITEID>1000000000000234</VSITEID>
      <LOCATOR_ID>181</LOCATOR_ID>
     </data>
     <data>
      <type>1</type>
      <VSITEID>1000000000000234</VSITEID>
      <LOCATOR_ID>182</LOCATOR_ID>
     </data>
     <data>
      <type>2</type>
      <VSITEID>1000000000000234</VSITEID>
      <LOCATOR_ID>108</LOCATOR_ID>
     </data>
     <data>
      <type>3</type>
      <VSITEID>1000000000000234</VSITEID>
      <LOCATOR_ID>219</LOCATOR_ID>
     </data>
    </requestinfo>


    其中要根据元素的名称进行类型的划分,比如:元素为CERC,type=1;元素为VPN,type=2;元素为SR,type=3;

    有那位大哥能帮我看看xslt怎么写?我已经想了一整天了想不出来,头痛。。。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/6 17:59:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客2
    发贴心情 
    自己完成吧,
    <data>
     <type>
      <xsl:choose>
       <xsl:when test="name()='CERC'">1</xsl:when>
       <xsl:when test="name()='VPN'">2</xsl:when>
       <xsl:when test="name()='SR'">3</xsl:when>
      </xsl:choose>
     </type>
     <xsl:copy-of select="../../VSITEID|../VSITEID"/>
     <LOCATOR_ID><xsl:value-of select="." /></LOCATOR_ID>
    </data>

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/6 19:20:00
     
     自由风 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:154
      门派:XML.ORG.CN
      注册:2006/12/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给自由风发送一个短消息 把自由风加入好友 查看自由风的个人资料 搜索自由风在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看自由风的博客3
    发贴心情 
    太感谢Qr大哥,我在论坛上问了几个问题,基本上都是Qr大哥帮我解决的,小弟在这说声:多谢!该问题根据大哥的提示解决了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/7 13:37:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客4
    发贴心情 
    我是论坛的受益者,趁着还有精力,现在是我回报论坛的时候了。

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/7 16:31:00
     
     自由风 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:154
      门派:XML.ORG.CN
      注册:2006/12/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给自由风发送一个短消息 把自由风加入好友 查看自由风的个人资料 搜索自由风在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看自由风的博客5
    发贴心情 
    Qr大哥,还有一个问题想请教你
    我的xslt如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:CIM">
     <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
     <xsl:template match="/">
      <code>
       <xsl:for-each select="properties/item">
        <xsl:choose>
         <xsl:when test="name = 'State'">
          <xsl:choose>
           <xsl:when test="value='DEPLOYED' or value='FUNCTIONAL'">0</xsl:when>
           <xsl:when test="value='INVALID' or value='FAILED_AUDIT'">1</xsl:when>
           <xsl:when test="value='REQUESTED' or value='PENDING'">2</xsl:when>
          </xsl:choose>
         </xsl:when>
        </xsl:choose>
       </xsl:for-each>
      </code>
     </xsl:template>
    </xsl:stylesheet>

    我用XMLSpy软件单步调试没有任何问题,将其部署到servicemix中,运行报错如下:

    Error at element constructor <responseinfo> of :
      XPTY0004: Cannot compare xs:string to xs:integer
    ERROR - SaxonComponent                 - Error processing exchange InOut[
      id: ID:demo-36723-1207365059684-202:2
      status: Active
      role: provider
      service: {http://www.zznode.com/vpndis}request-response-format
      endpoint: endpoint
      in: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://www.cisco.com/cim-cx/2.0" xmlns:ns1="urn:CIM" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Header>
        <ns0:message id="87855" sessiontoken="39B21CBF68406FD013635474DA8F0276" timestamp="2008-04-08T02:24:40.201Z" wait="true" waittimeout="90"/>
      </soapenv:Header>

    SystemID: ; Line#: -1; Column#: -1
    net.sf.saxon.trans.DynamicError: Cannot compare xs:string to xs:integer
            at net.sf.saxon.expr.ValueComparison.compare(ValueComparison.java:586)
            at net.sf.saxon.expr.GeneralComparison.compare(GeneralComparison.java:570)
            at net.sf.saxon.expr.GeneralComparison.effectiveBooleanValue(GeneralComparison.java:490)
            at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:325)
            at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:338)
            at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:338)
            at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:353)
            at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:338)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ForEach.processLeavingTail(ForEach.java:244)
            at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:353)
            at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:352)
            at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:338)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ForEach.processLeavingTail(ForEach.java:244)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:250)
            at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:353)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:250)
            at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:353)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:250)
            at net.sf.saxon.instruct.Instruction.process(Instruction.java:91)
            at net.sf.saxon.instruct.ForEach.processLeavingTail(ForEach.java:244)
            at net.sf.saxon.instruct.Template.applyLeavingTail(Template.java:99)
            at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:319)
            at net.sf.saxon.Controller.transformDocument(Controller.java:1602)
            at net.sf.saxon.Controller.transform(Controller.java:1426)
            at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:97)
            at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:74)
            at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:201)
            at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
            at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
            at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
            at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
            at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
            at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
            at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
            at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
            at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
            at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
            at java.lang.Thread.run(Thread.java:595)

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/8 11:14:00
     
     自由风 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:154
      门派:XML.ORG.CN
      注册:2006/12/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给自由风发送一个短消息 把自由风加入好友 查看自由风的个人资料 搜索自由风在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看自由风的博客6
    发贴心情 
    主要的错误在于:XPTY0004: Cannot compare xs:string to xs:integer

    我在网上查了半天也没有想到相应的资料

    只好请教一下大哥了!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/8 11:17:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客7
    发贴心情 
    应该是数据类型不匹配的问题,具体检查XSL中的@test部分。

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/9 10:17:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/6/6 0:58:23

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

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