我有一个看起来像这样的 XML 文件
<ss:demo>
<ss:Name>
<ss:FirstName>First</ss:FirstName>
<ss:SecondName>Second</ss:SecondName>
</ss:Name>
<ss:country code="IN">India</ss:country>
</ss:demo>
如何使用 C# 阅读此内容。请帮助我。哪种阅读方式最简单?我试图将它读入 DataSet 但它显示了一些错误。
使用 C# 读取 XML 文档或其部分的策略有多种。如果您更具体地了解要对 XML 文档执行的操作,社区可以为您提供更具体的指导。
以下是一些最佳选择:
LINQ转XML
http://msdn.microsoft.com/en-us/library/bb387098.aspx
http://msdn.microsoft.com/en-us/library/bb387065.aspx
XDocument(Linq to XML 框架的一部分)
http://msdn.microsoft.com/en-us/library/bb387063.aspx
xml文档
http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx
XPath
只是LINQ to XML怎么样?
鉴于这种:
var xml = "<ss:demo>\r\n<ss:Name>\r\n <ss:FirstName>First</ss:FirstName>\r\n <ss:SecondName>" +
"Second</ss:SecondName>\r\n</ss:Name>\r\n<ss:country code=\"IN\">India</ss:country>\r\n</ss" +
":demo>";
(注意我必须IN
用引号括起来"IN"
)
声明一些命名空间并将其读入:
var mngr = new XmlNamespaceManager( new NameTable() );
mngr.AddNamespace( "ss", "urn:ignore" ); // or proper URL
var parserContext = new XmlParserContext(null, mngr, null, XmlSpace.None, null);
如果从上面的字符串中读取:
var txtReader = new XmlTextReader( xml, XmlNodeType.Element, parserContext );
如果改为从文件中读取:
var txtReader = new XmlTextReader( new FileStream(filename, FileMode.Open), XmlNodeType.Element, parserContext );
然后加载:
var ele = XElement.Load( txtReader );
ele
包含您需要的一切。