2010-12-29 14 views
1

xmlをデータ型textのSQL Serverデータベースに保存するので、長い文字列です。SQL Serverのテキストフィールドからxmlに変換する方法

私が今必要とするのは、この文字列をxmlに変換してからこれを処理し、最後に文字列に変換してデータベースに戻すことです。

のxml:

<Posts> 
    <DialogPost> 
     <Type></Type> 
     <User></User> 
     <Customer></Customer> 
     <Date></Date> 
     <Message></Message> 
    </DialogPost> 
</Posts> 

私はXMLにLINQので働き始めました、そして、素晴らしいことのようですが、私はそれが動作することに問題を抱えています。

XDocument dialogXML = XDocument.Load("trying to load the xml string right in"); 

dbから直接ストリングが好きではありません。あなたはこの問題に取り組むために私にどのようにお勧めしますか?両方の読書とDBに戻って書き込む。

+0

XMLフィールドに格納するのはなぜですか? – Oded

+0

私はこのテキストフィールドに既に保存している他のアプリケーションに依存していますが、xmlフィールドタイプを絶対に好んでいます。 – Fore

+0

投稿したXMLを修正しました。それがタイプミスでない場合は、私の変更を元に戻し、無効なXMLを復元してください。 –

答えて

2

XDocument.Parseメソッドを使用します。 LoadはXMLではなくURIを要求します。

投稿したXMLが無効であることにも注意してください。最後にDialogタグがありますが、開始タグはありません。次に、有効なXMLで動作する例を示します。

string str = 
@"<?xml version=""1.0""?> 
<!-- comment at the root level --> 
<Posts> 
    <DialogPost> 
     <Type></Type> 
     <User></User> 
     <Customer></Customer> 
     <Date></Date> 
     <Message></Message> 
    </DialogPost> 
    </Posts>"; 
XDocument doc = XDocument.Parse(str); 

Take a look here例と詳細については、

+0

魅力のように動作します、ありがとう。さらに私が追加したいのであれば、私はそれをどうやって行うのですか? – Fore

+0

閉じる 'DialogPost'タグの下で、しかし' Posts'タグを閉じる前に別の 'DialogPost'を追加するだけです。 –

関連する問題