【发布时间】:2018-12-07 17:19:33
【问题描述】:
我在网上找到了几条关于此的信息,但我无法让它终生发挥作用。
这是我拥有的 XML:
我需要提取每个节点的 ID 和名称值。有很多。
我尝试这样做,但它返回 NULL:
select [xml].value('(/Alter/Object/ObjectDefinition/MeasureGroup/Partitions/Partition/ID)[1]', 'varchar(max)')
from test_xml
我知道上面只会返回 1 条记录。我的问题是,如何返回所有记录?
这是 XML 文本(精简版):
<Alter xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" AllowCreate="true" ObjectExpansion="ExpandFull">
<ObjectDefinition>
<MeasureGroup xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ID>ts_homevideo_sum_20140430_76091ba1-3a51-45bf-a767-f9f3de7eeabe</ID>
<Name>table_1</Name>
<StorageMode valuens="ddl200_200">InMemory</StorageMode>
<ProcessingMode>Regular</ProcessingMode>
<Partitions>
<Partition>
<ID>123</ID>
<Name>2012</Name>
</Partition>
<Partition>
<ID>456</ID>
<Name>2013</Name>
</Partition>
</Partitions>
</MeasureGroup>
</ObjectDefinition>
</Alter>
【问题讨论】:
-
这个命名空间的东西是我仍在努力学习和理解的东西,也许其他人可以给出一个有效的答案并有希望地解释它。如果我找到一种方法来完成这项工作,我会发布一个新的答案。
-
不用担心。感谢您的尝试!
-
不客气。抱歉,我无法提供更多帮助
标签: sql sql-server xml xquery