Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
从TSQL XML中拉出属性_Sql_Xml_Tsql_Dom - Fatal编程技术网

从TSQL XML中拉出属性

从TSQL XML中拉出属性,sql,xml,tsql,dom,Sql,Xml,Tsql,Dom,我有以下XML: <help> <item field="field1" help="helptext" /> <item field="field2" help="helptext" /> <item field="field3" help="helptext" /> </help> 有人知道如何做到这一点吗 最亲切的问候 Adam查看以下内容是否有帮助: DECLARE @processedXmlDoc int DEC

我有以下XML:

<help>
  <item field="field1" help="helptext" />
  <item field="field2" help="helptext" />
  <item field="field3" help="helptext" />
</help>
有人知道如何做到这一点吗

最亲切的问候


Adam

查看以下内容是否有帮助:

DECLARE @processedXmlDoc int
DECLARE @inputDoc varchar(1000)

EXEC sp_xml_preparedocument @processedXmlDoc OUTPUT, @inputDoc 

SELECT    *
FROM       OPENXML (@processedXmlDoc , '/help/item',1)
            WITH (field varchar(20) 'field',
                  help varchar(20) 'helpText')

EXECUTE sp_xml_removedocument @idoc

希望这能有所帮助。

尝试以下方法:

DECLARE @input XML = '<help>
  <item field="field1" help="helptext" />
  <item field="field2" help="helptext" />
  <item field="field3" help="helptext" />
</help>'

SELECT
    Field = Item.value('@field', 'varchar(25)'),
    HELP = Item.value('@help', 'varchar(50)')
FROM
    @input.nodes('/help/item') AS XTbl(Item)
DECLARE@input XML='1〕
'
挑选
Field=Item.value(“@Field”,“varchar(25)”),
HELP=Item.value(“@HELP”,“varchar(50)”)
从…起
@input.nodes('/help/item')作为XTbl(item)

其中MyTable是包含xml数据的字段MyXmlField的表。

感谢您的回复。如果XML是一个变量,那么这种方法非常有效。我正在努力将它链接起来,以便从表中使用它,因为我正在为此创建一个视图。谢谢你的帮助!
DECLARE @input XML = '<help>
  <item field="field1" help="helptext" />
  <item field="field2" help="helptext" />
  <item field="field3" help="helptext" />
</help>'

SELECT
    Field = Item.value('@field', 'varchar(25)'),
    HELP = Item.value('@help', 'varchar(50)')
FROM
    @input.nodes('/help/item') AS XTbl(Item)
DECLARE @xml AS XML = '<help>
  <item field="field1" help="helptext" />
  <item field="field2" help="helptext" />
  <item field="field3" help="helptext" />
</help>'

select c.value('@field', 'varchar(max)') field, c.value('@help', 'varchar(max)') help
from @xml.nodes('/help/item') T(c);
SELECT c.value('@field', 'varchar(max)') field, c.value('@help', 'varchar(max)') help
FROM MyTable A CROSS APPLY A.MyXmlField.nodes('/help/item') T(c)