从 url 直接加载 xml 数据.在过滤它以仅显示某些字段时遇到问题
本文关键字:显示 字段 问题 遇到 url 加载 xml 过滤 数据 | 更新日期: 2023-09-27 17:55:14
var m_strFilePath = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=" + cmbLibrary.Text + "&term=" + txtProtein.Text;
string xmlStr;
using (var wc = new WebClient())
{
xmlStr = wc.DownloadString(m_strFilePath);
}
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);
txtblkProtein.Text = xmlStr;
lstID.ItemsSource = xmlStr;
lblSearch.Content = m_strFilePath;
这是我当前从NCBI填充文本块和列表框的代码。
我的问题是文本块显示一个大型集群中的所有 xml 数据,而列表框每行显示一个字符。
这是我正在使用的原始数据。
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=dystrophin
在我搜索以了解如何仅显示具有此数据的某些字段(如 ID)的任何地方,他们都认为我正在格式化本地文件。
任何提示或方向将不胜感激,我是新手
,知识渊博。谢谢
为什么不创建一个 XmlNodeReader 对象并将其与 XmlDocument 一起加载。然后从 XmlNodeReader 加载数据集。
将数据放在数据集中后,您可以操作/显示所需的任何表和列。
试试这个代码...
DataSet DS = new DataSet();
XmlNodeReader xmlReader = new XmlNodeReader(xmlDoc);
DS.ReadXml(xmlReader);
您可以编写 XPATH 来提取所需的数据
或者,您也可以尝试 LINQ to XMLhttps://msdn.microsoft.com/fr-fr/library/bb387098.aspx
您以字符串形式获取响应并将其分配给xmlStr
。然后,将此字符串分配给文本块:txtblkProtein.Text = xmlStr;
,因此 Text 是整个响应字符串。
相反,您需要使用XmlDocument
并从中提取元素和属性。 例如(http://csharp.net-tutorials.com/xml/reading-xml-with-the-xmldocument-class/)
在VB表单中,这将获取ID并将其显示在列表框中
Dim someXE As XElement
someXE = XElement.Load("https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=dystrophin") 'to load from file / uri
lstID.Items.AddRange((From id In someXE.<IdList>.Elements Select id.Value).ToArray)