【问题标题】:Generating XML file in C# [closed]在 C# 中生成 XML 文件 [关闭]
【发布时间】:2017-07-11 20:39:15
【问题描述】:

如何创建一个带有自定义标签的 XML 文件,并用来自例如的数据(字符串)填充它。 C# 中的文本框?

更准确地说,我正在 Xamarin 中为 VS 15 编写一个应用程序(使用 PCL 的 windows.forms/UWP),我需要将在文本框中键入的数据等保存在 XML 文件中。

例子:

用户在文本框中输入他的名字。然后在另一个文本框中输入他的生日日期。 xml 文件应如下所示:

<userdata>
   <name>John Doe</name>
   <birthdate>15.05.1995</birthdate>
</userdata>

【问题讨论】:

  • 用属性创建一个类并序列化为 XML support.microsoft.com/en-us/help/815813/…
  • 翻译:tag=element; custom=所有元素都是自定义的; data=text 节点(在您的示例中)。不过,您可能希望对生日使用标准日期格式。至少那时它将被识别为明确格式的日期。请参阅XML Schema Instance (xsi) 类型。
  • 这里有许多与从 C# 编写 XML 相关的现有问题(和答案)。请在此处发布之前先进行一些研究并自己解决问题。完成此操作后,如果遇到困难,您可以解释问题,在此处包含代码的相关部分,并提出与该代码相关的特定问题,我们会尽力提供帮助。祝你好运。
  • 我在发帖前搜索了一个多小时。有很多类似的问题,但我没有得到任何答案。我是新手,没有编程经验。
  • 你将不得不买一本书或遵循一个教程,你不能通过反复试验来学习这些东西。

标签: c# xml windows xamarin uwp


【解决方案1】:

您想创建一个对象来存储“用户数据”并使用文本框中的值填充它。

然后您将使用 XmlSerializer 创建对象的 Xml。

这样的……

// Create a class to store your object
public class userdata
{
    public string name;
    public string birthdate;
}

// Instantiate and populate your person object
var userData = new userdata() { name = txtName.Text, birthdate = txtBirthday.Text };

// Set up your xml serializer based on your person object
using (var streamWriter = new System.IO.StreamWriter(@"c:\temp\userData.xml"))
{
    var xmlSerializer = new System.Xml.Serialization.XmlSerializer(userData.GetType());
    xmlSerializer.Serialize(streamWriter, userData);
}

我希望这会有所帮助!

【讨论】:

  • 我确定 StringWriter 是用于调试目的。请不要将字符串保存到“.xml”文件;直接保存到文件中,以便将字符集声明设置为编写器用于写入文件的字符编码。
  • 感谢您的回答!我会试一试!我没有得到的是您的代码是否生成了一个 xml 文件?如果是这样,该文件保存在哪里?
  • 我更新了将 Xml 保存到文件的答案。
【解决方案2】:

试试这样:

var xd =
    new XDocument(
        new XElement(
            "userdata",
            new XElement("name", TextBox1.Text),
            new XElement("birthdate", TextBox2.Text)));

xd.Save(@"filename.xml");

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2021-01-28
    相关资源
    最近更新 更多