xml字段解析的Xquery查询问题,已经困惑很多天了,请教前辈

wstar 2012-12-10 01:28:36
xml部分数据如下

<priorities tsip:action="new">
<priority tsip:priorityCode="A3" wila:relationCode="DE-IP">
<applicationId>
<number tsip:form="wila">102008031758-6</number>
<number tsip:form="original">10 2008 031 758.6</number>
<number tsip:form="tsip">100031758</number>
<countryCode>DE</countryCode>
<applicationYear>2008</applicationYear>
<date>2008-07-04</date>
</applicationId>
</priority>
</priorities>

有两个问题
1、如何取得priority 节的tsip:priorityCode的值,就是"A3"这个值?
2、number节为重复的,我现在用

SELECT f_content.value('
declare default element namespace "http://schemas.thomson.com/ts/20041221/tsip";
declare namespace tsip = "http://schemas.thomson.com/ts/20041221/tsip";
(/tsip:dataFeed/tsip/memberPatents/patent/priorities/priority/applicationId/number)[1]' ,'nvarchar(MAX)') as PR
from table

只能取到第一个number的值,如何能够取得特定number节的值,如tsip:form="original"的number节的值?因为number节数量是不固定的,按序号取无法满足需要。

先感谢高人了,初期接触XML字段,满头雾水呀。
...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vidor 2012-12-10
  • 打赏
  • 举报
回复
tsip:form="original"的number节的值,Xpath谓词number[@tsip:form="original"]限定:
SELECT f_content.value('
     declare default element namespace "http://schemas.thomson.com/ts/20041221/tsip";
     declare namespace tsip = "http://schemas.thomson.com/ts/20041221/tsip";
    (/tsip:dataFeed/tsip/memberPatents/patent/priorities/priority/applicationId/number[@tsip:form="original"])[1]' ,'nvarchar(MAX)') as PR   
     from table
發糞塗牆 2012-12-10
  • 打赏
  • 举报
回复
XML不熟,帮不了忙,给个路径你看看吧,希望能有帮助: http://bbs.csdn.net/topics/370267910
《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的各种相关知识。《疯狂XML讲义》作为疯狂Java体系图书之一,依然保持该体系图书系统、全面的特点:不仅详细介绍了XML,文档的各种知识,还通过案例示范了实际开发中如何应用XML知识。 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过X Query可以查询XML,文档中的数据,就像使用SQL查询关系数据库的数据一样。第四部分介绍了Web Services和CXF,其中CXF是Java领域的主流Web Services框架,简单易用。第五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统,让读者将前面所学应用到实际项目中。尤其是电子拍卖系统,它是一个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻辑层,然后用CXF将业务逻辑组件包装成Web Services,从而可以将现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极好的指导价值和借鉴意义。 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答案可登录http://www.crazyit.org获取。 《疯狂XML讲义》是疯狂Java体系丛书之一,学习《疯狂XML讲义》无须任何XMI,基础,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧