Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Node属性查询XML节点值

使用Node属性查询XML节点值
EN

Stack Overflow用户
提问于 2013-11-05 16:33:08
回答 1查看 3.6K关注 0票数 1

我试图检索作为xml数据类型存储在sql server列中的xml节点的值。例如,我的xml列数据是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<fields>
<field id="StudentName">John Smith</field>
<field id="StudentID">1310021003</field>
<field id="SchoolName">Little Kid Elementary School</field>
</fields>

我要拿回StudentID。当我运行下面的脚本时,我会得到null。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select MyColumnName.value('(/fields/field/@StudentID)[1]', 'varchar(20)') as StudentId from MyTable

额外的问题-如果可能的话,我还想通过学生查询表格,例如:select * from MyTable where MyColumnName.value('(/fields/field/@StudentID)[1]', 'varchar(20)') = '1310021003'

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 22:23:32

首先,这将是测试环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
declare @MyTable table (MyColumnName xml)

insert into @MyTable 
select '<fields>
<field id="StudentName">John Smith</field>
<field id="StudentID">1310021003</field>
<field id="SchoolName">Little Kid Elementary School</field>
</fields>' union all

select '<fields>
<field id="StudentName">John Smith</field>
<field id="StudentID">2343343434</field>
<field id="SchoolName">Little Kid Elementary School</field>
</fields>'

要从xml中获取数据,请使用value()函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select
    MyColumnName.value('(fields/field[@id="StudentID"]/text())[1]', 'nvarchar(max)') as StudentID
from @MyTable

产出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StudentID
-----------
1310021003
2343343434

若要通过xml数据进行筛选,请使用exist()函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select
    *
from @MyTable
where MyColumnName.exist('fields/field[@id="StudentID" and text()=1310021003]') = 1

产出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyColumnName
-----------
<fields>
    <field id="StudentName">John Smith</field>
    <field id="StudentID">1310021003</field>
    <field id="SchoolName">Little Kid Elementary School</field>
</fields>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19801867

复制
相关文章
39 - 读取XML节点和属性值
在当前目录下有一个products.xml 文件,要求读取该文件中products节点的所有子节点的值以及子节点的属性值 <!-- products.xml --> <root> <products> <product uuid="1234"> <id>10000</id> <name>iphone9</name> <price>9999</price> </product> <product uuid="4321"> <id>20000</id> <name>
ruochen
2021/05/25
2.5K0
39 - 读取XML节点和属性值
java解析xml格式的节点属性值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137716.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.1K0
使用%XML.TextReader 节点属性
如前所述,类中的%XML.TextReader解析XML文档并创建一个text reader对象,该对象由一组与文档组件相对应的节点组成;节点类型在本章前面的“文档节点”中进行了描述。
用户7741497
2022/07/05
1K0
Java使用JAXB对XML设置属性和属性值
复杂点的原因是名称带有冒号,属性也是,没有操作过JAXB是不容易上手,我来记录下实体的代码。
高久峰
2023/10/12
5600
Java xml节点属性的修改[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 Java xml节点属性的修改 修改xml节点的属性,我们先建立一个修改之前的xml文档: <?xml version=”1.0″ encoding=”GB2
全栈程序员站长
2022/09/13
2K0
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
创建 XmlParser 解析器 , 传入 Xml 文件对应的 File 对象 ;
韩曙亮
2023/03/30
7.2K0
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 )
生成 Xml 数据前 , 首先要将 Xml 数据封装起来 , 先手机 Xml 的各个层级节点的信息 , 最后利用这些节点信息生成 Xml 数据 ;
韩曙亮
2023/03/30
6.2K0
Node节点
Node.nextSibling属性返回紧跟在当前节点后面的第一个同级节点。如果当前节点后面没有同级节点,则返回null。
RiemannHypothesis
2022/10/31
5740
Java 根据XPATH批量替换XML节点中的值
根据XPATH批量替换XML节点中的值 by: 授客 测试环境 JDK 1.8.0_25 代码实操 message.xml文件 <Request service="SALE_ORDER_SERVICE" lang="zh-CN"> <Head> <AccessCode>xxxxxxxxxx12Ur8v6qkYAaOf</AccessCode> <Checkword>xxxxxxxxxxkmPif7Z35UEJjrR</Checkword> </Head>
授客
2022/09/28
2.1K0
【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )
参考 Xml 生成器 MarkupBuilder , 自定义开发一个 Xml 生成器 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )
要查询对象存在,但是属性值都为空
场景:在使用spring与mybatis整合实现简单的登录功能时,发现登陆成功后,user对象存在,但是输出user的id或者name时,却显示0或者null。
Charles-LZ
2019/07/02
1.2K0
Java xml 添加节点
大家好,又见面了,我是你们的朋友全栈君。 建立一个xml文件test.xml,文件内容如下 <?xml version=”1.0″ encoding=”GB2312″ standalone=”no
全栈程序员站长
2022/09/16
1.7K0
XML检查属性
本节讨论可用于获取任何属性的名称、值、命名空间、QName和值命名空间的方法。这些方法分为以下几组:
用户7741497
2022/07/05
5530
XML中节点类型
该 Node 接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node 接口的所有对象公开处理子节点的方法时,不是实现 Node 接口的所有对象都有子节点。例如,Text 节点可能没有子节点,且将子节点添加到这样的节点将导致引发 DOMException。
sr
2018/08/20
1.1K0
XML中节点类型
如何使用Node.js编辑XML文件
由于XML仍然继续用作数据交换格式(主要是在企业应用程序中),因此了解如何以编程方式操纵XML文件的内容可能非常有用。 您可以轻松地在Node.js中编写一个小的脚本来立即进行更改,而不必手动编辑数百行XML。 在 之前的文章中,我们研究了如何通过使用开源 xml2js模块将XML文件转换为Node.js中的JSON对象。 今天,您将学习如何使用Node.js编辑XML文件。
ccf19881030
2020/10/26
7.2K0
修改xml的节点
交流、咨询,有疑问欢迎添加QQ 2125364717,一起交流、一起发现问题、一起进步啊,哈哈哈哈哈 import osimport xml.etree.ElementTree as ET#程序功能:批量修改VOC数据集中xml标签文件的标签名称def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'):
狼啸风云
2021/06/10
9150
@JsonSerialize 使用:注解方式 实现条件判断属性值、条件修改属性值
预期效果为:当查到属性值为 1 时,就给序列化后的 json 中性别字段赋值为 “男” , 0 则 ”女“ 。
微风-- 轻许--
2022/04/13
3K0
@JsonSerialize 使用:注解方式 实现条件判断属性值、条件修改属性值
XML元素和属性
默认情况下,next()方法不检查是否存在与标记为必需的属性相对应的元素和属性。要使读取器检查此类元素和属性是否存在,请在调用Next()之前将读取器的CheckRequired属性设置为1。出于兼容性原因,此属性的默认值为0。
用户7741497
2022/07/04
1.4K0
点击加载更多

相似问题

使用XPath查询从匹配XML节点获取属性值

33

如何根据上级节点的属性值查询XML节点

12

从子节点查询xml父节点属性

23

使用其属性值获取xml节点值

10

使用节点js读取xml属性值

215
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文