2011-11-08 5 views
2

エキスパート 私はXMLを非常に新しくしています。しかし、WebアプリケーションはXML形式でデータを収集するので、ASP.Net GridViewでそのデータを表示(編集可能)する必要があります。私はあなたの助けが必要です。私はGridViewのにXMLをバインドすると考えることができASP.Net gridviewにXMLデータを表示する方法は?

<?xml version="1.0"?> 
<Answers> 
    <AnswerSet> 
<Answer questionId="MRN">4444</Answer> 
<Answer questionId="FName">test</Answer> 
<Answer questionId="LName">patient</Answer> 
<Answer questionId="AddressPt">blah blah</Answer> 
<Answer questionId="Governorate">xxxx</Answer> 
<Answer questionId="InitialCSF">Negative</Answer> 
<Answer questionId="Diagnosis"></Answer> 
<Answer questionId="Description"> 
</Answer> 
    </AnswerSet> 
    <AnswerSet> 
<Answer questionId="MRN">1</Answer> 
<Answer questionId="FName">1</Answer> 
<Answer questionId="LName">1</Answer> 
<Answer questionId="AddressPt">1</Answer> 
<Answer questionId="InitialCSF">Positive</Answer> 
<Answer questionId="Diagnosis">dx</Answer> 
<Answer questionId="Description"> 
</Answer> 
    </AnswerSet> 
</Answers> 

答えて

5

最も簡単な方法は、DataSetにXMLをロードし、GridViewのにDataSetをバインドすることです:ds.Tables[0]を行うための

StringReader sr= new StringReader(xml); 
DataSet ds = new DataSet(); 
ds.ReadXml(sr); 

Gridview.DataSource=ds.Tables[1]; 
Gridview.DataBind(); 

理由は、あなたのサンプルにAnswersの2つのセットが含まれていて、XMLでデータセットをロードすると、最初のDataTableにはXML上にある回答のセットが含まれ、2番目のテーブルにはすべての回答のすべての行。

LinqPadは次のようにそれがある表示方法:

enter image description here

UPDATE:あなたの答えのための

string [email protected]"<?xml version=""1.0""?> 
<Answers> 
    <AnswerSet> 
<Answer questionId=""MRN"">4444</Answer> 
<Answer questionId=""FName"">test</Answer> 
<Answer questionId=""LName"">patient</Answer> 
<Answer questionId=""AddressPt"">blah blah</Answer> 
<Answer questionId=""Governorate"">xxxx</Answer> 
<Answer questionId=""InitialCSF"">Negative</Answer> 
<Answer questionId=""Diagnosis""></Answer> 
<Answer questionId=""Description""> 
</Answer> 
    </AnswerSet> 
    <AnswerSet> 
<Answer questionId=""MRN"">1</Answer> 
<Answer questionId=""FName"">1</Answer> 
<Answer questionId=""LName"">1</Answer> 
<Answer questionId=""AddressPt"">1</Answer> 
<Answer questionId=""InitialCSF"">Positive</Answer> 
<Answer questionId=""Diagnosis"">dx</Answer> 
<Answer questionId=""Description""> 
</Answer> 
    </AnswerSet> 
</Answers>"; 
StringReader sr= new StringReader(xml); 
DataSet ds = new DataSet(); 
ds.ReadXml(sr); 
ds.Merge(ds,true); 
gridview.DataSoure=ds.Tables[1]; 
    gridview.DataBind(); 
+0

おかげで、私はuが私のデータを試してみました幸せです。私は混乱しています、例えば、私は "文字列リーダ"を見つけることができません。私はその悪いことを知っています。詳細を教えてください –

+1

StringReaderはSystem.IO名前空間にあります。 'using System.IO; 'を実行すると、このクラスのインスタンスを作成できるはずです。 'System.IO.StringReader sr = new System.IO.StringReader();' – Icarus

+1

@mokokamello私が使用したコードを提供しました。アップデートを見てください。 – Icarus

関連する問題