gpt4 book ai didi

c# - Python 的 xml.etree getiterator 相当于 C#

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:44 24 4
gpt4 key购买 nike

我有这个 XML 文件:http://dl.dropbox.com/u/10773282/2011/perf.xml

enter image description here

如标记的那样,它有两个 Class 元素。我需要用 C# 获取两个节点。

使用 Python,我可以使用 etree.ElementTree 轻松获取它们,如下所示。

from xml.etree import ElementTree as et
from xml.etree.ElementTree import Element

tree = et.parse("perf.xml")
tss = tree.getiterator('Class')

for elem in tss:
tss_name = elem.find('ClassKeyName')
print tss_name.text

>> helloclass.exe
>> helloclass.exeFpga::TestMe

enter image description here

我怎样才能用 C# 做同样的事情?

已解决

using System;
using System.Xml;
using System.Xml.Linq;
using System.Linq;

namespace HIR {
class Dummy {

static void Main(String[] argv) {

XDocument doc = XDocument.Load("perf.xml");
var res = from p in doc.Root.Elements("Module").Elements("NamespaceTable").Elements("Class").Elements("ClassKeyName") select p.Value;

foreach (var val in res) {
Console.WriteLine(val.ToString());
}
}
}
}

>> helloclass.exe
>> helloclass.exeFpga::TestMe

或者

foreach (var elem in elems) {
var res = elem.Elements("ClassKeyName").ToList();
Console.WriteLine(res[0].Value);
}

最佳答案

您应该尝试 Linq to XML...非常易于使用:

var xml = XDocument.Load(filename);
var res = from p in xml.Root.Elements("Class").Elements("ClassKeyName") select p.Value;

关于c# - Python 的 xml.etree getiterator 相当于 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com