Ⅰ sql取xml中节点值,该怎么解决
/// <summary>
/// 读取xml中的指定节点的值
/// </summary>
private string ReadXmlNode(string filename)
{
string result = "-1";
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.LoadXml(filename);
//读取Activity节点下的数据。SelectSingleNode匹配第一个Activity节点
XmlNode root = xmlDoc.SelectSingleNode("//head");//当节点Workflow带有属性是,使用SelectSingleNode无法读取
if (root != null)
result = (root.SelectSingleNode("code")).InnerText;
}
catch //(Exception e)
{
//显示错误信息
}
return result;
}
Ⅱ sql 2005数据库 如何操作xml
查询操作
在定义了一个XML类型的数据之后,我们最常用的就是查询操作,下面我们来介绍如何使用SQL语句来进行查询操作的。
在T-Sql中,提供了两个对XML类型数据进行查询的函数,分别是query(xquery)和value(xquery,
dataType),其中,query(xquery)得到的是带有标签的数据,而value(xquery,
dataType)得到的则是标签的内容。接下类我们分别使用这两个函数来进行查询。
1
、使用query(xquery)
查询
我们需要得到书的标题(title),使用query(xquery)来进行查询,查询语句为:
select
@xmlDoc.query('/book/title')
2
、使用value(xquery,
dataType)
查询
同样是得到书的标题,使用value函数,需要指明两个参数,一个为xquery,
另一个为得到数据的类型。看下面的查询语句:
select
@xmlDoc.value('(/book/title)[1]',
'nvarchar(max)')
3
、查询属性值
无论是使用query还是value,都可以很容易的得到一个节点的某个属性值,例如,我们很希望得到book节点的id,我们这里使用value方法进行查询,语句为:
select
@xmlDoc.value('(/book/@id)[1]',
'nvarchar(max)')
4
、使用xpath进行查询
xpath是统一的Xml查询语句。使用XPath可以方便的得到想要的节点,而不用使用where语句。例如,我们在@xmlDoc中添加了另外一个节点
例如
:得到id为0002的book节点
select
@xmlDoc.query('(/root/book[@id="0002"])')
参考资料:SQL如何操作Xml字段
http://www.studyofnet.com/news/490.html
Ⅲ SQLServer中查询xml数据节点的属性值
SELECT
master.dbo.fn_pcre_match('该段xml代码','<(.*?)
value=(.*?)>')
获取xml中的字段信息,根据‘<(.*?)
value
(.*?)>’该正则过滤出所有的信息,如果匹配到了,返回结果1,没匹配到就是0了