2010-12-11 14 views
1

次の行は正常に機能し、xmlファイルに適切な値を書き留めます。無効な属性文字xml docfrag innerxmll

問題は、最初のタグを変更しようとしています。 「<」という16進値0x3Cが無効な属性文字であることを示しています。

私は気圧持っているもの:

<Question type =""> 
<QuestionName>test</QuestionName> 
</Question type> 

<Question type =""> 
<QuestionName>test</QuestionName> 
</Question type> 

をしかし、私はそれが正確に逆転したくなります(これはエラーがこれを達成しようとして発生した場所)のコードがだけが働いているの下には

<QuestionName> 
    <Question type =""></Question type> 
</QuestionName> 

<QuestionName> 
    <Question type =""></Question type> 
</QuestionName> 

最初の例では

docFrag.InnerXml = "<Question type=\"" + lblQuestion.SelectedValue + "\">" + 
      "<QuestionName>" + txtQuestionName.Text + "</QuestionName>" + 
      "</Question>"; 

答えて

0

あなたの終了タグは、属性を省略すべきである - それはまたちょうど

</Question> 

です。連結を介してXMLを構築すると、バグを逃がす傾向があります。私はここでLINQからXMLを使用します。

string s = new XElement("QuestionName", 
    new XElement("Question", 
    new XAttribute("type", "foo"), 
    "bar" 
) 
).ToString(); 
+0

これは、コンストラクタがより多くの議論を必要としていると言っています。以前はLINQを使ったことはありません。よろしくお願いします。 – Tonz

+0

@Tonz - 私のために "そのまま"コンパイルして実行します...? –

0

私はここを参照してくださいすると、指定されたXMLを読み取るためXmlDocumentクラスを使用しようとしているです。それは、緩いxmlで動作しません。それは、ルートタグとXML宣言を持つ適切なXMLが必要です。緩いxmlで作業するには、Linq to Xmlを使用します。

+0

上記のコードは、全体のコードの断片に過ぎません。それは私のウェブサイトに与える入力からXMLを書いています。 – Tonz

関連する問題