如何在 C# 中将 XMLDocument 反序列化为对象?
我有一个 .Net Web 服务,它接受字符串格式的 XML
。 XML
发送到Web服务的字符串可以代表系统中的任何对象。我需要检查第一个节点以找出要反序列化 XML 字符串的对象。为此,我必须将 XML 加载到 XMLDocument
中(不想使用 RegEx 或字符串比较)。我想知道是否有一种方法可以反序列化 XMLDocument/XMLNode
而不是反序列化字符串以节省一些性能?序列化 XMLNode
而不是字符串会带来任何性能优势吗?
加载 XMLDocument 的方法
public void LoadFromString(String s)
{
m_XmlDoc = new XmlDocument();
m_XmlDoc.LoadXml(s);
}
谢谢
I have a .Net webserivce that accepts XML
in string format. XML
String sent into the webserivce can represent any Object in the system. I need to check the first node to figure out what object to deserialize the XML string. For this I will have to load the XML into an XMLDocument
(Don't want to use RegEx or string compare). I am wondering if there is a way to Deserialize the XMLDocument/XMLNode
rather that deserializing the string to save some performance? Is there going to be any performance benefit serializing the XMLNode
rather that the string?
Method to Load XMLDocument
public void LoadFromString(String s)
{
m_XmlDoc = new XmlDocument();
m_XmlDoc.LoadXml(s);
}
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您有
XmlDocument
,则可以使用XmlNodeReader
作为XmlReader
传递给XmlSerializer
,但我想知道是否最好还是用其他方式来做;使用XmlReader
获取最外层元素名称,并将该提供给XmlSerializer
...If you have an
XmlDocument
, you can useXmlNodeReader
as anXmlReader
to pass toXmlSerializer
, but I wonder if it would be better to do it the other way; use anXmlReader
to get the outermost element name, and give that toXmlSerializer
...不要忘记一个强大的竞争者,LINQ to XML!
Don't forget a powerfull contender, LINQ to XML!