新手求读取xml节点的有关问题
新手求读取xml节点的问题,
<TcEventSources>
<Source>
<Id>50</Id>
<Name>TwinCAT Cnc Errors</Name>
<Event>
<Id>1</Id>
<ReqMustCon>0</ReqMustCon>
<Message LcId="2052">急停报警</Message>
<Class>7</Class>
<Priority>0</Priority>
</Event>
<Event>
<Id>2</Id>
<ReqMustCon>0</ReqMustCon>
<Message LcId="2052">普通报警</Message>
<Class>7</Class>
<Priority>0</Priority>
</Event>
</Source>
</TcEventSources>
读取ID 1 或者 2 的急停报警 ,普通报警,之前用的
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("TcEventSources/Source/Event" + "[id='" + id + "']");//查找
XmlNode xmlNode = xmlNodeList.Item(0);
return xmlNode["Class"].InnerText;
//XmlNode xmlNode = xmlNodeList.Item(0);
//return xmlNode["id"].InnerText;// "TcEventSources/Source/Event" + id
都不对 谢谢大神的指教
------解决思路----------------------
XPATH要逐级查找,不能跳级
-------------------------------------------------------------------------------------------
请为参加博客之星的我投上一票感激之至
------解决思路----------------------
http://blog.****.net/duanzi_peng/article/details/24018431
------解决思路----------------------
使用LINQ TO XML。
------解决思路----------------------
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("TcEventSources/Source/Event" + "[id='" + id + "']");//查找
XmlNode xmlNode = xmlNodeList.ChildNodes[2].InnerText;
------解决思路----------------------
------解决思路----------------------
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(filename);
XmlNodeList xList = xmlDoc.SelectNodes("//Event");
foreach (XmlNode x in xList)
{
string Id = (x.SelectSingleNode("Id")).InnerText;
string Message = (x.SelectSingleNode("Message ")).InnerText;
}
}
catch (Exception e)
{
}
<TcEventSources>
<Source>
<Id>50</Id>
<Name>TwinCAT Cnc Errors</Name>
<Event>
<Id>1</Id>
<ReqMustCon>0</ReqMustCon>
<Message LcId="2052">急停报警</Message>
<Class>7</Class>
<Priority>0</Priority>
</Event>
<Event>
<Id>2</Id>
<ReqMustCon>0</ReqMustCon>
<Message LcId="2052">普通报警</Message>
<Class>7</Class>
<Priority>0</Priority>
</Event>
</Source>
</TcEventSources>
读取ID 1 或者 2 的急停报警 ,普通报警,之前用的
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("TcEventSources/Source/Event" + "[id='" + id + "']");//查找
XmlNode xmlNode = xmlNodeList.Item(0);
return xmlNode["Class"].InnerText;
//XmlNode xmlNode = xmlNodeList.Item(0);
//return xmlNode["id"].InnerText;// "TcEventSources/Source/Event" + id
都不对 谢谢大神的指教
------解决思路----------------------
XPATH要逐级查找,不能跳级
-------------------------------------------------------------------------------------------
请为参加博客之星的我投上一票感激之至
------解决思路----------------------
http://blog.****.net/duanzi_peng/article/details/24018431
------解决思路----------------------
使用LINQ TO XML。
------解决思路----------------------
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("TcEventSources/Source/Event" + "[id='" + id + "']");//查找
XmlNode xmlNode = xmlNodeList.ChildNodes[2].InnerText;
------解决思路----------------------
XDocument item = XDocument.Load("test1.xml");
var result = from x in item.Descendants("Event")
select new
{
ID = x.Element("Id").Value,
Message = x.Element("Message").Value,
};
foreach (var el in result)
{
MessageBox.Show(el.ID + " " + el.Message );
}
------解决思路----------------------
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(filename);
XmlNodeList xList = xmlDoc.SelectNodes("//Event");
foreach (XmlNode x in xList)
{
string Id = (x.SelectSingleNode("Id")).InnerText;
string Message = (x.SelectSingleNode("Message ")).InnerText;
}
}
catch (Exception e)
{
}