как считать данные из XML

продавец_цудес
Дата: 20.04.2007 19:25:00
есть такой xml документ
<?xml version="1.0" encoding="utf-8" ?>
<doc>
<field id="akt" name="АКТ" pattern="А К Т"/>
</doc>

а в приложении мне надо из него вытащить id name pattern как?
Varg
Дата: 20.04.2007 20:27:09
> есть такой xml документ <?xml version="1.0" encoding="utf-8" ?> <doc> <field id="akt" name="АКТ" pattern="А К Т"/> </doc> а в приложении мне надо из него вытащить id name pattern как?

// загрузить xml в XmlDocument
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml("<?xml version='1.0' encoding='utf-8' ?><doc><field id='akt' name='АКТ' pattern='А К Т'/></doc>");

// если в xml только один doc и у него один field, то так:
XmlNode akt = xdoc.SelectSingleNode("//doc/field");

// если надо найти field с определенным id, то так:
XmlNode akt = xdoc.SelectSingleNode("//descendant::field[@id='akt']");

// получить значение атрибута
string name = GetAttributeValue(akt, "name");
string pattern = GetAttributeValue(akt, "pattern");
...

private static string GetAttributeValue(XmlNode node, string attrName)
{
    XmlAttribute attr = node.Attributes[attrName];
    return (attr != null) ? attr.Value : null;
}
продавец_цудес
Дата: 20.04.2007 21:01:00
а если field много?
продавец_цудес
Дата: 20.04.2007 21:21:00
а если field много? программа на C#

Varg
Дата: 20.04.2007 22:27:28
> а если field много?

foreach(XmlNode akt in xdoc.SelectNodes("//doc/field"))
{
    string name = GetAttributeValue(akt, "name");
    ...
}