XML解析选择

本文关键字:选择 XML | 更新日期: 2023-09-27 18:19:02

我开始学习c#,我需要一些帮助…我尝试连接一个xml文件从互联网和设置所有的数据在一个selectList

我试着运行这段代码…

    XPathDocument document = new XPathDocument("https://forex.boi.org.il/currency.xml");
    XPathNavigator navigator = document.CreateNavigator();
    XPathExpression query = navigator.Compile("/CURRENCIES/CURRENCY");
    XPathNodeIterator nodes = navigator.Select(query);
    XPathNavigator nodesNavigator = nodes.Current;
    XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);
    while (nodesText.MoveNext())
    {
        selectList.Items.Add(nodesText.Current.Value);
    }

但是当我运行它时,它从selectList中添加了所有的xml数据,我想只取CURRENCYCODE列表。美元…英镑…

我怎么能得到CURRENCYCODE或其他的文本(它需要什么…)?

XML解析选择

您可以使用更现代的。net XML API来简化任务,例如使用XDocument:

var doc = XDocument.Load("https://forex.boi.org.il/currency.xml");
var currencies = doc.Root.Elements("CURRENCY").Elements("CURRENCYCODE");
//or if you prefer using XPath expression :
//var currencies = doc.XPathSelectElements("/CURRENCIES/CURRENCY/CURRENCYCODE");
foreach (var currency in currencies)
{
    selectList.Items.Add((string)currency);
}

我只想取CURRENCYCODE列表

简单地使用//CURRENCYCODE作为XPath表达式来检索所有货币代码。