2010-11-21 20 views
0

私はSQL 2005データベースからxmlコードを取得するプログラムを作成しましたが、今度はすべての属性をWindowsフォームアプリケーションに表示します。どのような機能がそれをサポートしていますか?そしてどうやって?C#を使用してxmlの属性と値を取得

<Permission> 
    <CP name="Student"> 
     <tab name="studentinfo"> 
     </tab> 
     <tab name="notes"> 
      <groupbox name="ss"> 
      <field type="textArea" x="xxx" /> 
      </groupbox> 
     </tab> 
    </CP> 
    <CP name="Teacher"> 
    </CP> 
    <CP name="doctor"> 
    </CP> 
</Permission> 

出力:あなたは怒鳴るようにLINQをXMLでこれを行うことができます 名= "学生" 名= "学生情報"

など..

+0

スキーマの例がありますか? – Iain

+0

updated ......... – salman

+0

ここではxmlコードはapearingではありませんが、私は考えを得ることができます – salman

答えて

1

 XDocument xmlDoc = XDocument.Load("a.xml"); 
     var nodeAttrs = xmlDoc.Descendants().Select(x => x.Attributes()); 
     foreach (var attrs in nodeAttrs) 
     { 
      foreach (var attr in attrs) 
       Console.WriteLine("Name: {0}, Value :{1}", attr.Name ,attr.Value); 
     } 

の出力は次のとおりです。

Name: name, Value :Student 
Name: name, Value :studentinfo 
Name: name, Value :notes 
Name: name, Value :ss 
Name: type, Value :textArea 
Name: x, Value :xxx 
Name: name, Value :Teacher 
Name: name, Value :doctor 

編集そして、あなたがあなたのXMLを表す文字列を持っている場合は、LINQのライブラリへのXMLは、このかなり簡単

var xmlDoc = XDocument.Load(stream); 
0

その後、

var xmlString = "<Permission> <CP name=\"Student\"> <tab name=\"studentinfo\"></tab><tab name=\"notes\"><groupbox name=\"ss\"><field type=\"textArea\" x=\"xxx\" /></groupbox></tab></CP><CP name=\"Teacher\"></CP><CP name=\"doctor\"></CP></Permission>"; 
    byte[] byteArray = Encoding.ASCII.GetBytes(xmlString); 
    MemoryStream stream = new MemoryStream(byteArray); 

とを行うことができます

using (XmlTextReader reader = new XmlTextReader("C:/whatever.xml")) 
    { 
    reader.Read(); 
    XElement permission = (XElement)XElement.ReadFrom(reader); 
    string name = permission.Element("CP").Attribute("name").Value; 
    foreach (var tab in permission.Element("CP").Elements("tab")) 
    { 
     string tabName = tab.Attribute("name").Value; 
    } 
    } 
+0

は、Windowsフォームでそれを表示できますか?私はデータベースから別のファイルではないので、私はどのようにそれを行うことができますか? – salman

関連する問題