无效的属性字符xml docfrag innerxmll

时间:2010-12-11 11:00:48

标签: c# asp.net xml

以下几行正常工作,并将正确的值写入xml文件。

问题是尝试更改第一个标签。它一直说“<',十六进制值0x3C,是一个无效的属性字符。”

我有什么atm:

<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>";

2 个答案:

答案 0 :(得分:0)

您的结束标记应省略属性 - 它只是

</Question>

也;通过连接构建XML很容易逃避错误;我会在这里使用LINQ-to-XMl:

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

答案 1 :(得分:0)

我在这里看到的是你正在尝试使用XmlDocument类来读取给定的xml。它不适用于松散的xml。它需要带有root标签和xml声明的正确xml。要使用松散的xml,请使用Linq to Xml。