使用来自欧洲央行的以下URL:
www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
我想将货币符号和汇率导入字典或对象。我已经把它读入了xml文档,但我在识别节点属性时遇到了麻烦。
谢啦
string xmlString;
using (var client = new WebClient())
{
xmlString = client.DownloadString("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
}
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
foreach(XmlNode node in xmlDoc.SelectNodes("//*/Cube/@currency"))
{
// add currency and rate to dictionary
}
string xmlString;
using (var client = new WebClient())
{
xmlString = client.DownloadString("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
}
var doc = XDocument.Parse(xmlString);
XNamespace ns = "http://www.ecb.int/vocabulary/2002-08-01/eurofxref";
var values = doc
.Root
.Element(ns + "Cube")
.Element(ns + "Cube")
.Elements(ns + "Cube")
.ToDictionary(e => e.Attribute("currency"), e => (double) e.Attribute("rate"));
如果XPath表达式不包含前缀,则假定名称空间URI为空名称空间。如果XML包含默认名称空间,则仍必须向XmlNamespaceManager添加前缀和名称空间URI;否则,将不会选择任何节点。
使用此重载XmlNode。选择节点(字符串,XmlNamespaceManager)。
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("ecb", "http://www.ecb.int/vocabulary/2002-08-01/eurofxref");
foreach (XmlNode node in xmlDoc.SelectNodes("//ecb:Cube[@currency]", nsmgr))
我认为问题在于xPath选择器。
值为“//*[@currency]”将选择属性为“currency”的所有元素
class Program
{
public static void Main(string[] args)
{
List<Rate> rates = new List<Rate>();
var doc = new XmlDocument();
doc.Load(@"http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
XmlNodeList nodes = doc.SelectNodes("//*[@currency]");
if (nodes != null)
{
foreach (XmlNode node in nodes)
{
var rate = new Rate()
{
Currency = node.Attributes["currency"].Value,
Value = Decimal.Parse(node.Attributes["rate"].Value, NumberStyles.Any, new CultureInfo("en-Us"))
};
rates.Add(rate);
}
}
}
}
class Rate
{
public string Currency { get; set; }
public decimal Value { get; set; }
}
我正在尝试使用欧洲中央银行(ECB)的当前汇率提要http://www.ECB.int/stats/eurofxref/eurofxref-daily.xml 他们提供了关于如何解析xml的文档,但没有一个选项对我有效:我检查了是否设置了allow_url_fopen=on。 http://www.ecb.int/stats/exchange/eurofxref/html/index.en.htm
问题内容: 我试图解析一个字符串,以分隔字符串中的列表。我目前有字符串: 有什么方法可以解析字符串,以便字典键是列表的第一个元素,而键的值是元素的下一个。例如: 问题答案: insted的的,你可以有列表: 您可以使用从字符串解析Python数据结构
问题 你想使用一个Python字典存储数据,并将它转换成XML格式。 解决方案 尽管 xml.etree.ElementTree 库通常用来做解析工作,其实它也可以创建XML文档。 例如,考虑如下这个函数: from xml.etree.ElementTree import Element def dict_to_xml(tag, d): ''' Turn a simple dict of ke
本文向大家介绍Python字典推导式将cookie字符串转化为字典解析,包括了Python字典推导式将cookie字符串转化为字典解析的使用技巧和注意事项,需要的朋友参考一下 cookie: PHPSESSID=et4a33og7nbftv60j3v9m86cro; Hm_lvt_51e3cc975b346e7705d8c255164036b3=1561553685; Hm_lpvt_51e3cc
本文向大家介绍Objective-C语言XML解析,包括了Objective-C语言XML解析的使用技巧和注意事项,需要的朋友参考一下
问题内容: 我有一个XML文件,例如 如何将其解析为JSON结构文件? 问题答案: 对于一个简单的解决方案,我建议使用Jackson库,它是一个Java库,用于生成和读取带有XML扩展名的JSON,因为它只需几行简单的代码就可以将任意复杂的XML转换为JSON。 input.xml Java代码: 该演示使用Jackson 1.7.7 (较新的1.7.8也可以使用),Jackson XML Dat