我有一个带有XML参数的过程,我需要能够通过节点“Document”进行拆分,同时保留XML格式,这样我就可以将每个“Document”节点插入到表中。我已经尝试将所有内容放入临时表并使用for xml进行解析,但这不起作用。此示例只有两个“文档”节点,但可以有任何数字 这是XML结构:
DECLARE @XMLVariable xml
SET @XMLVariable = '<Documents>
<Document>
<UncFilePath>\\server\file1.PDF</UncFilePath>
<Pages>
<Page>
<PageNumber>1</PageNumber>
<IsValidFlg>1</IsValidFlg>
</Page>
<Page>
<PageNumber>2</PageNumber>
<IsValidFlg>0</IsValidFlg>
</Page>
</Pages>
</Document>
<Document>
<UncFilePath>\\server\file2.PDF</UncFilePath>
<Pages>
<Page>
<PageNumber>1</PageNumber>
<IsValidFlg>1</IsValidFlg>
</Page>
<Page>
<PageNumber>2</PageNumber>
<IsValidFlg>0</IsValidFlg>
</Page>
</Pages>
</Document>
</Documents>'
最终结果将是两行,包含每个'Document'节点的实际XML(包括):
第1行xml列:
<Document>
<UncFilePath>\\server\file1.PDF</UncFilePath>
<Pages>
<Page>
<PageNumber>1</PageNumber>
<IsValidFlg>1</IsValidFlg>
</Page>
<Page>
<PageNumber>2</PageNumber>
<IsValidFlg>0</IsValidFlg>
</Page>
</Pages>
</Document>
第2行xml列:
<Document>
<UncFilePath>\\server\file2.PDF</UncFilePath>
<Pages>
<Page>
<PageNumber>1</PageNumber>
<IsValidFlg>1</IsValidFlg>
</Page>
<Page>
<PageNumber>2</PageNumber>
<IsValidFlg>0</IsValidFlg>
</Page>
</Pages>
</Document>
任何想法都表示赞赏。
谢谢。
答案 0 :(得分:0)
没关系。想出来了。
选择pref.query(&#39;。&#39;)作为文档 FROM @ XMLVariable.nodes(&#39; / / &#39;)AS T(pref)