在XML字符串世界中编织我 - 我遇到过这个问题。
所以我有两个彼此超级相似的XML字符串 - 唯一的是 - 它们在节点内部有不同的信息。
XML字符串1:
RewriteRule ^member-login/?$ /login/ [L]
XML String 2:
<DocumentElement>
<Readings>
<ReadingID>1</ReadingID>
<ReadingDate>2013-12-19T00:00:00-05:00</ReadingDate>
<Sys>120</Sys>
<Dia>80</Dia>
<PageNumber>4</PageNumber>
<AddedDate>2015-04-17T19:30:22.2255116-04:00</AddedDate>
<UpdateDate>2015-04-17T19:30:22.2255116-04:00</UpdateDate>
</Readings>
<Readings>
<ReadingID>2</ReadingID>
<ReadingDate>2014-01-10T00:00:00-05:00</ReadingDate>
<Sys>108</Sys>
<Dia>86</Dia>
<PageNumber>8</PageNumber>
<AddedDate>2015-04-17T19:32:08.5121747-04:00</AddedDate>
<UpdateDate>2015-04-17T19:32:08.5121747-04:00</UpdateDate>
</Readings>
</DocumentElement>
现在这只是一个例子 - 我可以拥有无限量的字符串,就像我想要从中提取数据一样。在这种情况下,我有两个字符串,我希望提取<DocumentElement>
<Readings>
<ReadingID>1</ReadingID>
<ReadingDate>2013-12-20T00:00:00-05:00</ReadingDate>
<Sys>140</Sys>
<Dia>70</Dia>
<PageNumber>10</PageNumber>
<AddedDate>2015-04-17T19:30:22.2255116-04:00</AddedDate>
<UpdateDate>2015-04-17T19:30:22.2255116-04:00</UpdateDate>
</Readings>
</DocumentElement>
,<Sys>
和<Dia>
我还想在这样的表格中显示这些信息:
<ReadingDate>
我完全不确定如何继续这一点 - 感谢任何所有帮助!
答案 0 :(得分:2)
假设这些XML位于名为MyXmlColumn
的XML列中,在名为MyTable
*的表中,您可以尝试这样的事情:
SELECT
R.value('ReadingDate[1]', 'DATETIME') as ReadingDate
, R.value('Sys[1]', 'INT') as Sys
, R.value('Dia[1]', 'INT') as Dia
FROM MyTable t
CROSS APPLY t.MyXmlColumn.nodes('/DocumentElement/Readings') as readings(R)
<强> SQL Fiddle 强>
*:下次你应该首先提供这些信息