我需要从PubMed请求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文档对象并发送每个文档?每个文档都需要保存为单独的记录。
感谢您提供的信息。
答案 0 :(得分:1)
我的第一个想法是:为什么选择SQL-Server?为什么要发送所有这些数据?在C#中进行解析!
但是 - 第二眼看到:如果我理解正确,你想要阅读许多不同的XML文件并将它们存储在你的数据库中。
现在我宁愿问:您何时需要从这些XML中检索数据,是否需要将提取的数据存储在关系表中?您是否可以在XML类型列中存储这些XML as-is 并按需读取它们?
您可以将XML作为C#-string(即 unicode )传递,并将其直接插入到XML类型的列中。为避免任何问题,您应该删除第一行(<xml>
声明和DOCTYPE
)并从<PubmedArticleSet>
开始。
其余的应该很容易转移并存储在SQL-Server中。
如果您需要有关如何阅读此内容的帮助?请回到另一个更尖锐的问题。
关于哪个更快问你might read this。