【发布时间】:2013-06-19 08:37:39
【问题描述】:
我想从 xml 文件中获取数据。我正在从上一页获取节点的 ID。在下一页上,我想显示该 id 的 xml 中的数据。我正在使用查询字符串传递节点的 id,但是当我运行我的代码时,它给了我这个错误
System.Xml.XmlException:根级别的数据无效。第 1 行,位置 1。
这是我的代码
XElement xid = XElement.Parse(Request.QueryString["ID"]);
// var id = Request.QueryString["ID"];
var doc = XDocument.Load(Server.MapPath("~/Data/BlogContent.xml"));
var result = doc.Descendants("post")
.Where(x => x.Element("id") == xid)
.Select(x => new
{
id = x.Element("id").Value,
title = x.Element("title").Value,
Discription = x.Element("Discription").Value,
dt = x.Element("dt").Value,
mnt = x.Element("mnt").Value,
yr = x.Element("yr").Value
}).OrderByDescending(x => x.id).Take(5);
Repeater1.DataSource = result;
Repeater1.DataBind();
这是我的 xml
<?xml version="1.0" encoding="utf-8"?>
<content>
<post>
<id>1</id>
<title>fds</title>
<Discription>fdsafsdf</Discription>
<dt>21</dt>
<mnt>6</mnt>
<yr>2013</yr>
</post>
</content>
请告诉我哪里出错了
【问题讨论】:
-
请在您的帖子中包含示例 XML。
-
-
@MikePrecup 请立即查看 xml
-
这是导致错误的行吗?
XElement xid = XElement.Parse(Request.QueryString["ID"]);如果是这样,那是因为您试图将非 XML 的内容分配给XElement。试试int id = Convert.ToInt32(Request.QueryString["ID"]); -
运算符 '==' 不能应用于类型为 'System.Xml.Linq.XElement' 和 'int' 的操作数现在给我这个错误
标签: c# xml asp.net-mvc linq