我有一些像这样的xml:
<Action id="SignIn" description="nothing to say here" title=hello" />
使用LINQ to XML,我如何获得id的内部值?我不是在我的开发机器上(没有开发人员的机器,但是凭证)但是我还没试过:
var x = from a in xe.Elements("Action")
select a.Attribute("id").Value
我能沿着这些方向做些什么吗?我不想要一个布尔条件。另外,在引入LINQ之前,如何使用传统的XML方法完成此操作(我在.NET 3.5上)。
由于
答案 0 :(得分:3)
您可以执行类似
的操作XDocument doc = XDocument.Parse("<Action id=\"SignIn\" description=\"nothing to say here\" title=\"hello\" />");
var x = from a in doc.Elements("Action")
select a.Attribute("id").Value;
string idValue = x.Single(); //Single() is called for this particular input assuming you IEnumerable has just one entry
使用XmlDocument,你可以做到
XmlDocument doc = new XmlDocument();
doc.LoadXml("<Action id=\"SignIn\" description=\"nothing to say here\" title=\"hello\" />");
var x = doc.SelectSingleNode("Action/@id");
string idValue = x.Value;
HTH
答案 1 :(得分:2)
这是一个小例子,展示了如何做到这一点:
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
String xml = @"<Action
id=""SignIn""
description=""nothing to say here""
title=""hello""/>";
String id = XElement.Parse(xml)
.Attribute("id").Value;
}
}
答案 2 :(得分:1)
使用“传统”XML方法,您可以执行以下操作:
XmlDocument doc = new XmlDocument();
doc.Load("XML string here");
XmlNode node = doc.SelectSingleNode("Action");
string id = node.Attributes["id"].Value
安德鲁有正确的方法使用Linq做到这一点。
答案 3 :(得分:0)
使用传统的XML文档,假设您已经拥有所需的操作节点,使用SelectSingleNode或遍历文档,您可以获取id属性的值。
ActionNode.Attributes("id").Value
答案 4 :(得分:0)
你几乎拥有它,只要'xe'是 XElement 包含你正在寻找的那个和“Action”元素是第一个/只有 XElement 中的“Action”元素:
string x = xe.Element("Action").Attribute("id").Value;