C# 如何在C中从另一个XML值中获取XML值
我需要从XML文件中获取一个值 我有一个XML文件,例如: 伊瓦尔 BFEB-FBFF-0000-06FD-C87C-FA30 杰雷米 BFE9-FBFF-0000-06E8-E41E-5034C# 如何在C中从另一个XML值中获取XML值,c#,xml,C#,Xml,我需要从XML文件中获取一个值 我有一个XML文件,例如: 伊瓦尔 BFEB-FBFF-0000-06FD-C87C-FA30 杰雷米 BFE9-FBFF-0000-06E8-E41E-5034 现在,如果我的值是BFEB-FBFF-0000-06FD-C87C-FA30,那么如何通过C从xml文件中获取名称Ivar?我认为这应该可以: XElement root = XElement.Load("file.xml"); IEnumerable<XElement> hws =
现在,如果我的值是BFEB-FBFF-0000-06FD-C87C-FA30,那么如何通过C从xml文件中获取名称Ivar?我认为这应该可以:
XElement root = XElement.Load("file.xml");
IEnumerable<XElement> hws =
from el in root.Elements("user")
where (string)el.Element("userName") == "Ivar"
select el.Descendant("hwid);
尚未测试。我在应用程序中使用了如下内容:
using System.Data;
DataSet dataSet = new DataSet();
dataSet.ReadXml(xmlFullPath, XmlReadMode.Auto);
DataRow[] dataRows = dataSet.Tables["user"].Select("hwid like 'BFEB-FBFF-0000-06FD-C87C-FA30'");
if (dataRows.Length == 0)
return;
string sUser = dataRows[0]["userName"].ToString();
您还可以使用System.Xml命名空间的XmlDocument来实现这一点,该命名空间在.NET3.0中受支持
var xml = "<?xml version=\"1.0\"?>" +
"<hwids> " + "<user>" +
"<userName>Ivar</userName>" +
"<hwid>BFEB-FBFF-0000-06FD-C87C-FA30</hwid>"+
"</user> " +
"<user>" +
"<userName>Jerremy</userName>" +
"<hwid>BFE9-FBFF-0000-06E8-E41E-5034</hwid>" +
"</user>" +
"</hwids>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var ret = doc.GetElementsByTagName("userName");
for (int i = 0; i < ret.Count; i++)
{
Debug.WriteLine(ret.Item(i).InnerText);
}
我使用的是C3.0,所以我不能使用linq。是的,你也可以看到:原谅我是个新手,但我不能得到XElement。我都找不到System.Xml.Linq引用:我是说我用的是.NET3.0,不是C3.0。老实说,我觉得是一样的:$@Ivar没问题。我知道你最终会得到答案的。还有一个类是.NET2.0的一部分,但使用起来更为冗长。+1认为最终有人可以来使用XmlDocument,但这很好!