读书人

linq 出错 怎么解决

发布时间: 2012-02-15 12:09:44 作者: rapoo

linq 出错 如何解决.
以下代码 没有查询出想要的结果 如何修改

想要查询的内容是 <Layout direction="Vertical"> 这个小结


代码部分

XName Form = "Form", Id = "id", Control = "Control", Layout = "Layout", direction = "direction", Location = "Location", x = "x", y = "y", Size="Size",width = "width", height = "height";
string FormID = "FormLogin", ControlID = "panelMain", Direction = "Vertical";

//IEnumerable<string> partNos = Elements
var LocationList = from Forms in Root.Elements(Form)
where
( (string)Forms.Attribute(Id) == FormID &&
(string)Forms.Element(Control).Attribute(Id) == ControlID &&

(string)Forms.Element(Control).Element(Layout).Attribute(direction) == Direction
)
select new{
X =(int)Forms.Element(Control).Element(Layout).Element(Location).Element(x),
Y =(int)Forms.Element(Control).Element(Layout).Element(Location).Element(y),
Width = (int)Forms.Element(Control).Element(Layout).Element(Size).Element(width),
Height = (int)Forms.Element(Control).Element(Layout).Element(Size).Element(height),

};
xml文件
<?xml version="1.0" encoding="utf-8" ?>
<Root>

<!--登录窗口-->
<Form id="FormLogin" type="Form">

<!--panel控件-->
<Control id ="panelMain" type="Panel">

<Layout direction="Traverse">

<Location>
<x>3</x>
<y>3</y>
</Location>
<Size>
<width>234</width>
<height>262</height>
</Size>

</Layout>



<Layout direction="Vertical">

<Location>
<x>4</x>
<y>34</y>
</Location>
<Size>
<width>234</width>
<height>262</height>
</Size>
</Layout>


</Control>

</Form>

</Root>

[解决办法]
这么乱
[解决办法]

C# code
 XElement xe = XDocument.Load(Server.MapPath("XMLFile.xml")).Element(XName.Get("Root"));       IEnumerable<XElement> results= xe.Descendants(XName.Get("Layout"));       foreach (XElement result in results)       {           if (result.Attribute("direction").Value == "Vertical")           Response.Write(result.Value);       } 

读书人网 >.NET

热点推荐