我的XML结构如下<ClassMembers>
<StudentInfo ClassID="1" OrderNumber="116" StudentNumber="1" StudentName="张三">
<SumTime>2</SumTime>
<Percent>1.00</Percent>
<AbsenceTime>1</AbsenceTime>
<NM2013-05-14 IsCall="true">缺</NM2013-05-14>
<PM2013-05-14 IsCall="false">出</PM2013-05-14>
<AM2013-05-14 IsCall="true">出</AM2013-05-14>
</StudentInfo>
<StudentInfo ClassID="1" OrderNumber="115" StudentNumber="2" StudentName="李四">
<SumTime>1</SumTime>
<Percent>0</Percent>
<AbsenceTime>0</AbsenceTime>
<NM2013-05-14 IsCall="true">出</NM2013-05-14>
<PM2013-05-14 IsCall="false">出</PM2013-05-14>
</StudentInfo>
</ClassMembers>我想查询出来满足条件ClassID="1" StudentNumber="1" IsCall="true" 结果为
StudentName="张三"
<NM2013-05-14 IsCall="true">缺</NM2013-05-14>
<AM2013-05-14 IsCall="true">出</AM2013-05-14>
返回一个DataTable 用Linq to XML也可以!!!在线求答案或者思路!!!最好有代码!!谢谢!C#XML
<StudentInfo ClassID="1" OrderNumber="116" StudentNumber="1" StudentName="张三">
<SumTime>2</SumTime>
<Percent>1.00</Percent>
<AbsenceTime>1</AbsenceTime>
<NM2013-05-14 IsCall="true">缺</NM2013-05-14>
<PM2013-05-14 IsCall="false">出</PM2013-05-14>
<AM2013-05-14 IsCall="true">出</AM2013-05-14>
</StudentInfo>
<StudentInfo ClassID="1" OrderNumber="115" StudentNumber="2" StudentName="李四">
<SumTime>1</SumTime>
<Percent>0</Percent>
<AbsenceTime>0</AbsenceTime>
<NM2013-05-14 IsCall="true">出</NM2013-05-14>
<PM2013-05-14 IsCall="false">出</PM2013-05-14>
</StudentInfo>
</ClassMembers>我想查询出来满足条件ClassID="1" StudentNumber="1" IsCall="true" 结果为
StudentName="张三"
<NM2013-05-14 IsCall="true">缺</NM2013-05-14>
<AM2013-05-14 IsCall="true">出</AM2013-05-14>
返回一个DataTable 用Linq to XML也可以!!!在线求答案或者思路!!!最好有代码!!谢谢!C#XML
file现取字符串
XDocument doc = XDocument.Parse(string);
var Titlestr = (from p in doc.Root.Elements()
where p.Attribute("ClassID").Value == "1" 等等条件
select p.Attribute("StudentName").Value);
不知道是不是你想要的 如果不是 就select 别的你想要的值
XmlDocument xml = new XmlDocument();
xml.LoadXml(@"<ClassMembers>
<StudentInfo ClassID='1' OrderNumber='116' StudentNumber='1\' StudentName='张三'>
<SumTime>2</SumTime>
<Percent>1.00</Percent>
<AbsenceTime>1</AbsenceTime>
<NM2013-05-14 IsCall='true'>缺</NM2013-05-14>
<PM2013-05-14 IsCall='false'>出</PM2013-05-14>
<AM2013-05-14 IsCall='true'>出</AM2013-05-14>
</StudentInfo>
</ClassMembers>");
XmlNode node = xml.SelectSingleNode(@"ClassMembers");
XmlNodeList nodelist = node.ChildNodes;
for (int i = 0; i < nodelist.Count; i++)
{
string ClassIDValue = nodelist[i].Attributes["ClassID"].Name;//ClassID属性值
string StudentNumberValue = nodelist[i].Attributes["StudentNumber"].Value;//StudentNumber属性值
if (ClassIDValue == "1" && StudentNumberValue == "1")
{
XmlNodeList newnodeList = nodelist[i].ChildNodes;
for (int j = 0; j < newnodeList.Count; j++)
{
if (string.IsNullOrEmpty(newnodeList[j].Attributes("IsCall")) && newnodeList[j].Attributes("IsCall") == "true")
{
//组织DataTable;
}
}
}
}C#操作Xml,看一下吧
<AM2013-05-14 IsCall="true">出</AM2013-05-14>怎么查询出来......
var query = from x in xe.Elements("StudentInfo")
where (x.Attribute("ClassID").Value == "1" && x.Attribute("StudentNumber").Value == "1")
select new
{
StudentName = x.Attribute("StudentName").Value,
StudentInfo = x,
mm = x.Descendants().Where(y => y.Attribute("IsCall").Value == "true")
};