2010-11-24 9 views
0

データベースからXMLデータを取得し、DropDownListにバインドします。 DBフィールドでC#を使用してDBからXMLをロードする

XMLデータでは、次のとおりです。

<Root> 
    <ClientName>Jim</ClientName> 
    <ClientName>John</ClientName> 
    <ClientName>Andrew</ClientName> 
</Root> 

iはDBフィールドからXMLデータを取得しました。しかし、次のエラーが発生しました:

Data at the root level is invalid. Line 1, position 1

次のコードは、dbフィールドからxmlデータを取得するために使用されています。あなたはこの問題について考えていますか?

var list = from drp in zephyrEntities.UserDefinedFields 
      where drp.UDF_ID == udfid 
      select drp.LIST_VALUES; // xml field in the db 

XmlDocument doc = new XmlDocument(); 
XElement xelement = new XElement("UserDefinedList", list); 
string str = String.Concat(xelement.Nodes()); 
doc.LoadXML(str); 
XmlNodeList childNodes = doc.GetElementsByTagName("ClientName"); 
if (childNodes != null) 
{ 
    for (int i = 0; i < childNodes.Count; i++) 
    { 
     XmlNode valueNode = childNodes[i].SelectSingleNode("text()"); 
    } 
} 
+1

エラーが*どこで*発生したかを言えば助けになります。また、既にXElementにXMLを持っている場合は、XMLModelからXmlDocumentを作成するのはどうしてですか? –

+3

'System.Xml.XmlDocument'か' System.Xml.Linq.XElement'のどちらかを使うべきです。両方ではありません! – abatishchev

+0

こんにちは、私は、xelement.soからデータを読み込みたい、私はXML文書内のxelementを読み込みます。 doc.LoadXML(str)行でエラーが発生しました。 –

答えて

1

エンティティのリストを1つの値として保存する理由は明確ではありません。 DBモデルを正規化してみてください。

関連する問題