如何将字符串变量的值保存到.xml文件?

时间:2019-08-13 06:12:51

标签: c# xml wpf xaml

我无法使用XElement将字符串变量的值写入.xml文件。

我尝试使用System.IOXDocumentXElement

code.cs:

string variable ="sth";
XDocument xml_cip_c1 = new XDocument(
    new XComment("document"),
    new XElement("new root"),
    new XElement("name", variable)
);

result.xml:

<!--document-->
<new root>
    <name />
</new root>

3 个答案:

答案 0 :(得分:2)

您是先生。使用Value属性:

var yourVariable = "ABC";
XDocument xml_cip_c1 = new XDocument(
    new XComment("document"),
    new XElement("new_root",
    new XElement("name") { Value = yourVariable}));

这将产生以下输出:

<?xml version="1.0" encoding="utf-8"?>
<!--document-->
<new_root>
  <name>ABC</name>
</new_root>

但是,如果您想将Attribute添加到xml元素中,请使用以下使用XAttribute的代码:

XDocument xml_cip_c1 = new XDocument(
    new XComment("document"),
    new XElement("new_root",
    new XElement("name", new XAttribute("name", yourVariable))));

然后您将获得以下xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!--document-->
<new_root>
  <name name="ASD" />
</new_root>

答案 1 :(得分:0)

尝试一下

.cs代码

XmlWriterSettings settings = new XmlWriterSettings();  
settings.Indent =true;  
settings.IndentChars = ("    ");  
settings.CloseOutput = true;  
settings.OmitXmlDeclaration =true;                  
using (XmlWriter writer = XmlWriter.Create("FileName.xml", settings))  
{  

    writer.WriteStartElement("newroot");  
    writer.WriteElementString("name", "ABC");  
    writer.WriteEndElement();  
    writer.Flush();  
}

结果 => XML文件

<?xml version="1.0" encoding="utf-8" ?>
<newroot>
   <name>ABC</name>
</newroot>

答案 2 :(得分:0)

我使用第一篇文章中的方法

代码.cs:

  private void sb_button_click(object sender, RoutedEventArgs e)
        {
         variable1 = przycisk.Text;
         name_of_file_xml.Save(path_of_file);
        }

        static string variable1 ="sth"; 

我必须使用静态var,因为它需要我提供XAttribute。

我必须使用带值的字符串,因为如果我声明带值的字符串:

静态字符串zmienna1 = null;

System.ArgumentNullException:'该值不能为零。

代码.cs:

Parameter name: value '
XDocument name_of_file_xml = new XDocument(
            new XComment("document"),
            new XElement("root",
                new XElement("name", new XAttribute ("name2", variable1 ))
                )
            );

在我的项目中,我想要一个没有值的变量,可以吗?

因为它没有将button.text中的变量分配给我,而是将其分配给我