特定的.NET XML枚举过程

时间:2010-09-19 16:57:05

标签: c# .net xml porting

我对.NET中处理XML的方式有点不知所措。在我的情况下,我正在移植大量的C行,我想包装我的代码并基本保持它的方式我有它(但当然使用课程)。我并不是在寻找最快的方式,而是或多或少与我之前使用的API一致。

我的特定API是这样的:(这是C代码)

XML* xml = XML_Load("file.xml");
XML_OBJECT* obj;

XML_FindObjectByTagName(xml->pstFirstObject, "objectname", &obj);

/* Go through objects at that level */
for (obj = obj; obj != null; obj = obj->pstNext)
{
    char* s = XML_ReadAttribute_String(obj, "attribname");

    /* This is how I use my current API, and I would like to sorta keep it similar */
}

所以,我不确定我是否可以使用其中一个.NET类并保持类似外观,或者我是否应该创建一个包装器。如果有人知道我的解决方案,请告诉我。我真的很想找到让我从他们的名字中找到对象的函数,然后能够为结果做一个sorta(foreach)。谢谢!

2 个答案:

答案 0 :(得分:3)

我发现LINQ to XML是.NET中用于大多数任务的最佳XML API。

要查找具有特定名称的所有后代元素,您可以使用:

XDocument doc = XDocument.Load("file.xml");

foreach (XElement element in doc.Descendants("objectname"))
{
    string s = (string) element.Attribute("attribname");
    // ...
}

答案 1 :(得分:1)

我不知道C,但.NET总是有XmlDocument,它是XML的DOM表示。要进行快速处理,您可以使用XmlReader