让SQL Server解析大型多文档XML或将每个文档单独发送给

时间:2017-03-27 13:33:14

标签: c# sql-server xml vb.net

我需要从Pu​​bMed请求XML

    https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=27087788,28322247,26158412&retmode=xml

该示例有3个ID,但请求一次可以多达200个。该请求由.NET Web服务完成。我正在寻找处理XML文件的最有效方法。我知道这个词最好的"或者"高效"是非常主观的,取决于很多事情,但是:

将整个字符串发送到SQL Server数据库是否更好(如果由于长度或可能的嵌套级别甚至可能),并让它解析文档并将其保存到数据库中,或者更好地解析文档在Web服务中使用XMLTextReader或XML文档对象并发送每个文档?每个文档都需要保存为单独的记录。

感谢您提供的信息。

1 个答案:

答案 0 :(得分:1)

我的第一个想法是:为什么选择SQL-Server?为什么要发送所有这些数据?在C#中进行解析!

但是 - 第二眼看到:如果我理解正确,你想要阅读许多不同的XML文件并将它们存储在你的数据库中。

现在我宁愿问:您何时需要从这些XML中检索数据,是否需要将提取的数据存储在关系表中?您是否可以在XML类型列中存储这些XML as-is 并按需读取它们?

您可以将XML作为C#-string(即 unicode )传递,并将其直接插入到XML类型的列中。为避免任何问题,您应该删除第一行(<xml>声明和DOCTYPE)并从<PubmedArticleSet>开始。

其余的应该很容易转移并存储在SQL-Server中。

如果您需要有关如何阅读此内容的帮助?请回到另一个更尖锐的问题。

关于哪个更快问你might read this