Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 搜索XML数据中的所有事件_Sql_Xml - Fatal编程技术网

Sql 搜索XML数据中的所有事件

Sql 搜索XML数据中的所有事件,sql,xml,Sql,Xml,我的表有一列包含xml数据 e、 g: 有人能给我一个快速的开始怎么做?我知道如何搜索特定属性,不幸的是我不知道确切的属性,文本可以无处不在 更新 这是一个开始,但我仍然只想搜索newWert部分: SELECT x.y.value('local-name(.)', 'VARCHAR(MAX)'), x.y.value('.', 'VARCHAR(MAX)') FROM Meldung m CROSS apply m.Protokolldaten.nodes('//*[text()]') AS

我的表有一列包含xml数据

e、 g:

有人能给我一个快速的开始怎么做?我知道如何搜索特定属性,不幸的是我不知道确切的属性,文本可以无处不在

更新

这是一个开始,但我仍然只想搜索newWert部分:

SELECT
x.y.value('local-name(.)', 'VARCHAR(MAX)'),
x.y.value('.', 'VARCHAR(MAX)')
FROM Meldung m
CROSS apply m.Protokolldaten.nodes('//*[text()]') AS x(y)
WHERE Id = 'D81E6F2C-04C9-4F5B-9473-A45600EEA0DE'

看起来你想要这样的东西:

选择“馄饨”作为数据,
T.X.value('local-name(..),'varchar(max)'
来自dbo.Meldung m
交叉应用m.Protokolldaten.nodes('//newWert//text()[.=“Ravioli”]')作为T(X);

开始起草一份草稿(在本示例中,他们使用LINQ),如果您遇到问题,请发布您的代码,以便我们可以帮助您。您的xml中有一些拼写错误的单词,是故意的吗?(拉尔维奥利->馄饨)它是故意的:)它有点像一根木头。第一部分是旧值,第二部分是新值。我更新了帖子,现在我找到了一种获取所有值的方法,但仍然无法过滤掉旧部分
Data       | Attributename
Ravioli    | Description
Ravioli    | AnotherField
SELECT
x.y.value('local-name(.)', 'VARCHAR(MAX)'),
x.y.value('.', 'VARCHAR(MAX)')
FROM Meldung m
CROSS apply m.Protokolldaten.nodes('//*[text()]') AS x(y)
WHERE Id = 'D81E6F2C-04C9-4F5B-9473-A45600EEA0DE'