特定的.NET XML枚举过程
在.NET中处理XML有多少种方法让我感到不知所措。在我的例子中,我正在移植大量的C行,并且我想包装我的代码并保持它基本上是我的方式(但使用课程)。我并不是在寻找最快的方式,而是或多或少地与我以前的API一致。特定的.NET XML枚举过程
我的具体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)。谢谢!
我发现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");
// ...
}
我不知道C,但.NET一直有XmlDocument
这是XML的DOM表示。为了快速处理,您可以使用XmlReader
。
我以为自己错了,我用了很长时间。 – Aliostad 2010-09-19 17:16:48
尽管你可以*用XmlDocument完成所有这一切,但是LINQ to XML使得许多事情变得简单得多。 – 2010-09-19 17:36:56
辉煌。谢谢 – Kyle 2010-09-19 18:06:25