以下几行正常工作,并将正确的值写入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>";
答案 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。