【发布时间】:2015-04-14 12:09:43
【问题描述】:
我尝试解析以下网站的 XML:PubMed
我正在使用以下代码来完成这项工作:
public void SearchByURI(string keyword)
{
string URI = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=" + keyword;
System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(eSearchResult));
XmlReader xmlReader = XmlReader.Create(URI);
eSearchResult result = new eSearchResult();
result = (eSearchResult)reader.Deserialize(xmlReader);
}
但是当我运行代码时,它在最后一行崩溃,并出现以下异常:
System.Xml.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理。附加信息:XML 文档中存在错误 (0, 0)。
XML应该被序列化到的类可以在下面的pastbin中找到,这里粘贴有点大。 PasteBin link.此代码由Visual Studio生成
【问题讨论】:
-
XML 序列化器是一个相当猛兽,让它与 DTD 互操作确实非常复杂。尽管这不是您问题的直接答案,但您可能需要考虑将数据加载到
XElement中,然后自己将其拆开。虽然代码更多,但也更容易排除故障。 -
好的!非常感谢,我会试试这个!
标签: c# xml visual-studio