2012-05-07 11 views
1

私はC#を使用して、これを読むことができますどのようにこのC#で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> 

ようなXMLファイルを持っています。 私を助けてください。それはそれを読むための最も簡単な方法でしょうか?私はそれをDataSetに読み込もうとしましたが、何らかのエラーを示していました。

+1

、それが表示されているどのようなエラー、そしてどのようなあなたはそれを読んだ後にXMLをどうしたいですか? –

+0

あなたはそれを読むためにどのようなコードを使いましたか? –

+0

私は2つのXMLエラーを見ることができます。名前空間宣言はなく、 'IN'は' code'属性の引用符ではありません。私の答えは、第2のものが固定され、第1のものに関係なく動作することを期待しています。 – yamen

答えて

3

ちょうど約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はあなたが必要なものがすべて含まれています。

+0

あなたはこの場合、** XDocument.Load **を意味します。 (downvoteは私からではありませんでした) – McGarnagle

+0

はい、ファイルですが、例を示すために文字列を使用しました。私はそれがファイルのようなものを含めるように更新しました。 – yamen

6

XMLドキュメントまたはその一部をC#で読み取るには、いくつかの戦略があります。 XML文書で何をしたいのかを具体的に特定すれば、コミュニティはより具体的なガイダンスを提供することができます。ここ

は、いくつかのトップの選択肢である:XMLへ

LINQの

http://msdn.microsoft.com/en-us/library/bb387098.aspx

http://msdn.microsoft.com/en-us/library/bb387065.aspx

XDocument(XMLフレームワークへのLINQの一部)

http://msdn.microsoft.com/en-us/library/bb387063.aspx

のXmlDocument

http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx

のXPath

http://msdn.microsoft.com/en-us/library/ms256471.aspx