C# 使用LINQtoXML和数组创建XML
我使用LINQtoXML创建发送给第三方的XML。当我想在XML中发送的部分信息是动态的时,我很难理解如何使用Linq创建XML XML的动态部分作为字符串[,]数组保存。这个多维数组包含2个值 我可以使用stringbuilder“构建”动态XML,并将数组中的值存储到字符串变量中,但当我尝试将此变量包含到Linq中时,该变量是HTMLEncoded的,而不是作为正确的XML包含 如何将动态构建的字符串添加到由Linq构建的XML中 例如:C# 使用LINQtoXML和数组创建XML,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我使用LINQtoXML创建发送给第三方的XML。当我想在XML中发送的部分信息是动态的时,我很难理解如何使用Linq创建XML XML的动态部分作为字符串[,]数组保存。这个多维数组包含2个值 我可以使用stringbuilder“构建”动态XML,并将数组中的值存储到字符串变量中,但当我尝试将此变量包含到Linq中时,该变量是HTMLEncoded的,而不是作为正确的XML包含 如何将动态构建的字符串添加到由Linq构建的XML中 例如: //string below contains va
//string below contains values passed into my class
选择字符串[,]附件
//I loop through the above array and build up my 'Tag' and store in string called AccessoriesXML
//simple linq to xml example with my AccessoriesXML value passed into it
XDocument RequestDoc = new XDocument(
new XElement("MainTag",
new XAttribute("Innervalue", "2")
),
AccessoriesXML);
“Tag”是一个可选的额外选项,它可能会在我的XML中出现多次,也可能不会出现-这取决于用户是否选中某些复选框
现在,当我运行代码时,我看到:
<MainTag> blah blah </MainTag>
< ;Tag> ;< ;InnerTag> ; option1="valuefromarray0" option2="valuefromarray1" /> ;< ;Tag/> ;
废话
<;标签>&书信电报;InnerTag>;选项1=“valuefromarray0”选项2=“valuefromarray1”/>&书信电报;标签/>;
我想退回一些东西:
<MainTag> blah blah </MainTag>
<Tag><InnerTag option1="valuefromarray0" option2="valuefromarray1" /></Tag>
<Tag><InnerTag option1="valuefromarray0" option2="valuefromarray1" /></Tag>
废话
有什么想法或建议吗?我可以使用XmlDocument实现这一点,但如果可能的话,我希望使用Linq实现这一点
谢谢你的帮助,
Rich使用(“名称”、“值”)构造函数构建XElements将使用值文本作为文字文本,并在必要时对其进行转义以实现此目的 如果您想从一段XML文本以编程方式创建XElement,而该XML文本实际上要被解释为XML,那么应该使用
XElement.Load()
。这将把字符串解析为实际的XML,而不是试图将字符串的文本指定为转义的文本值
试试这个:
XDocument RequestDoc = new XDocument(
new XElement("MainTag",
new XAttribute("Innervalue", "2")
),
XElement.Load(new StringReader(AccessoriesXML)));
就这样!我不会让自己难堪的,我会说,为了让它工作,我已经在这上面混了多久了哈哈!谢谢:)你为什么使用
StringReader
?仅仅这样做是错误的吗<代码>XElement.Load(附件XML)