C# 读取xml属性
我很困惑。。。我心里再也没有什么东西了。。。我需要从这种C# 读取xml属性,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我很困惑。。。我心里再也没有什么东西了。。。我需要从这种xmldocument <party_list> <party currency="BAM" id="330-159210014235851" /> <party currency="EUR" id="330-153990008540078" /> </party_list> XmlNodeList elemList=doc.GetElementsByTagName(…); fo
xmldocument
<party_list>
<party currency="BAM" id="330-159210014235851" />
<party currency="EUR" id="330-153990008540078" />
</party_list>
XmlNodeList elemList=doc.GetElementsByTagName(…);
for(int i=0;i
尝试上述代码。更换
MessageBox.Show(element.Element("party").Value);
与
因为您的元素已经是方
元素
完整代码:
XDocument doc = XDocument.Load(@"e:\input\partylist.xml");
foreach (var party in doc.Descendants("party"))
foreach (var attr in party.Attributes())
MessageBox.Show(attr.ToString());
此代码使用XAttribute
的重写ToString()
方法,该方法返回属性名称及其值,如下所示:
currency="BAM"
如果需要,您只能使用value:MessageBox.Show(attr.value)代码>你能试试这个吗
XDocument doc = XDocument.Load(@"e:\input\partylist.xml");
foreach (var partyList in doc.Descendants("party"))
{
string currency= partyList .Attribute("currency").Value;
string id= partyList .Attribute("id").Value;
}
输入xml文件
<?xml version='1.0' encoding='utf-16'?>
<party_list>
<party currency='BAM' id='330-159210014235851' />
<party currency='EUR' id='330-153990008540078' />
</party_list>
string body=@”
";
XmlDocument bodyDoc=新的XmlDocument();
bodyDoc.LoadXml(body);
XmlNodeList xnList=bodyDoc.SelectNodes(“/party\u list/party”);
foreach(xnList中的XmlNode项)
{
var id=项.属性[“id”].值;
var currency=项目属性[“currency”].值;
}
另一个选项:
XElement xml =
XElement.Parse (@"<party_list>
<party currency='BAM' id='330-159210014235851' />
<party currency='EUR' id='330-153990008540078' />
</party_list>");
xml.Elements()
.SelectMany(element => element.Attributes().Select(attrib => attrib.Value))
.ToList()
.ForEach(text => MessageBox.Show(text));
XElement xml=
XElement.Parse(@)
");
xml.Elements()
.SelectMany(element=>element.Attributes().Select(attrib=>attrib.Value))
托利斯先生()
.ForEach(text=>MessageBox.Show(text));
试试这个
XDocument doc = XDpcument.Load("your xml location");
var parties = from p in doc.Descendants("party")
select new
{
currency = p.Attribute("currency").Value;
Id = p. Attribute("id").Value;
}
请注意,NullReferenceException
可能位于属性(“货币”).Value
。我也访问了Value
属性,直到看到lazyberezovsky用cast tostring
给出的答案。抛出异常可能是一种理想的行为,但通常不是这样,因为xml
通常来自外部源。doc.substands(“party_list”)应该是doc.substands(“party”)您是否在其中添加了适当的标记名?您好,请尝试解决方案现在正在运行……可能会对您有所帮助。。
<?xml version='1.0' encoding='utf-16'?>
<party_list>
<party currency='BAM' id='330-159210014235851' />
<party currency='EUR' id='330-153990008540078' />
</party_list>
XDocument doc = XDocument.Load(@"e:\input\partylist.xml");
var eles = doc.Element("party_list").Elements("party");
foreach (XElement ele in eles)
{
Console.WriteLine (ele.Attribute("currency").Value);
Console.WriteLine(ele.Attribute("id").Value);
}
Console.ReadLine();
string body = @"<?xml version='1.0' encoding='utf-16'?><party_list>
<party currency='BAM' id='330-159210014235851' />
<party currency='EUR' id='330-153990008540078' />
</party_list>";
XmlDocument bodyDoc = new XmlDocument();
bodyDoc.LoadXml(body);
XmlNodeList xnList = bodyDoc.SelectNodes("/party_list/party");
foreach (XmlNode item in xnList)
{
var id = item.Attributes["id"].Value;
var currency = item.Attributes["currency"].Value;
}
XElement xml =
XElement.Parse (@"<party_list>
<party currency='BAM' id='330-159210014235851' />
<party currency='EUR' id='330-153990008540078' />
</party_list>");
xml.Elements()
.SelectMany(element => element.Attributes().Select(attrib => attrib.Value))
.ToList()
.ForEach(text => MessageBox.Show(text));
XDocument doc = XDpcument.Load("your xml location");
var parties = from p in doc.Descendants("party")
select new
{
currency = p.Attribute("currency").Value;
Id = p. Attribute("id").Value;
}