如何解决使用LINQ将XML文档解析为子XML文档
我知道必须在某个地方提出该问题并回答,但我找不到它,所以我会再次提出它。我有以下vb.net代码来提取XML文档。
Dim getXML = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&retmode=xml&id=30076185,29253513"
Dim doc As XDocument
doc = XDocument.Load(getXML)
Dim xmlDocs = doc.Root.Elements("PubmedArticle")
然后将PubmedArticleSet元素拆分为2个PubmedArticle的 我需要做的是将每个xml文档保存为MS XML数据库,而不是将XML保存为纯文本字符串。
我的SQL代码是
sql.Parameters.Add(New SqlParameter("@XMLData",SqlDbType.Xml)).Value = xmlDocs(i).Document.Root
我得到一个错误
{"Failed to convert parameter value from a XElement to a String."} System.Exception {System.InvalidCastException}
我试图
CSTR(xmlDocs(i).Document.Root)
但是会给出不同的错误
Message = "XML parsing: line 1,character 9668,illegal name character"
如果我使用相同的代码,但是将xml剪切并粘贴到TextBox中,则效果很好,所以我必须假定这与我对LINQ XML文档缺乏理解有关。
感谢所有建议,以帮助保存每个出版物文档元素
更新:我可以使用带有以下代码的XMLDocument来做到这一点。
Dim docXML As New XmlDocument
docXML.Load(getXML)
For Each node As XmlNode In docXML.SelectNodes("/PubmedArticleSet/PubmedArticle")
Dim pubmed As String = ""
Dim xmlData As String = "<PubmedArticleSet><PubmedArticle>" + node.InnerXml + "</PubmedArticle></PubmedArticleSet>"
'Data capture for Pubmed and pmc
Dim node1a As XmlNodeList = node.SelectNodes("PubmedData/ArticleIdList")
For Each node1a1 As XmlNode In node1a
pubmed = node1a1.SelectSingleNode("ArticleId[@IdType='pubmed']").InnerText
Next
UpdateDatabaseXML(xmlData,pubmed,1835)
Next
LINQ会做同样的事情还是应该保留XMLDocument?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。