2

私は混乱しています... もう何も考えていません... この種の属性から各属性を読み取る必要がありますxmldocument

<party_list>
   <party currency="BAM" id="330-159210014235851" />
   <party currency="EUR" id="330-153990008540078" />
</party_list>

私はこれを持っています...しかし役に立たない

XDocument doc = XDocument.Load(@"e:\input\partylist.xml");
XElement root1 = doc.Element("party_list");
foreach (XElement element in root1.Elements())
{
   MessageBox.Show(element.Element("party").Value);
}
4

7 に答える 7

2

交換

MessageBox.Show(element.Element("party").Value);

MessageBox.Show((string)element.Attribute["currency"]);

あなたの要素はすでにparty要素であるためです。


完全なコード:

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());

このコードは、オーバーライドされたToString()メソッドを使用XAttributeして、属性名とその値を次のように返します。

currency="BAM"

必要な場合は、値のみを使用できます。MessageBox.Show(attr.Value);

于 2013-04-16T06:49:59.417 に答える
0

これを試すことができますか?

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;
}
于 2013-04-16T06:53:10.057 に答える
0
XmlNodeList elemList = doc.GetElementsByTagName(...);
    for (int i = 0; i < elemList.Count; i++)
    {
        string attrVal = elemList[i].Attributes["id"].Value;
    }  

上記のコードを試してください。

于 2013-04-16T06:48:44.883 に答える
0
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;
}
于 2013-04-16T07:04:08.267 に答える