gpt4 book ai didi

c# - 如何将数据插入到 asp.net 中现有的 xml 文件中?

转载 作者:数据小太阳 更新时间:2023-10-29 02:02:26 25 4
gpt4 key购买 nike

我正在使用 Visual Web Developer 2008 Express Edition,我需要您的帮助,因为我是新手。我正在尝试将数据插入或写入我的 xml 文件,以便我可以将其显示到我的 xml 控件中。现在,我在这里要做的是,每次用户在文本框中输入一条消息时,他都可以选择保存它,所以如果他单击命令按钮,我想将文本消息从文本框保存到我的 xml 的任何元素中文件。比方说,我想将它插入到我的 xml 文件的元素中。如何使用 C# 或 VB.Net 代码来实现?我在下面有我的 xml 文件和我的 C# 代码,但 C# 代码对我不起作用。我需要 c# 或 vb.net 中的代码,无论哪种方式都适合我。非常感谢,我非常感谢可以分享的任何帮助。

myxmlfile.xml

<?xml version="1.0" encoding="utf-8" ?>
<comments>
<comment>
Your Comments Here: Please post your comments now. Thank you.
</comment>
<comment2>
Note: Please do not post any profane languages.
</comment2>
<comment3>
I don't like their service. It's too lousy.
</comment3>
<comment4>
Always be alert on your duty. Don't be tardy enough to waste your time.
</comment4>
</comments>

代码

protected void Button1_Click(object sender, EventArgs e)
{
System.Xml.Linq.XDocument mydoc =
new System.Xml.Linq.XDocument(
new System.Xml.Linq.XDeclaration("1.0", "UTF-8", "yes"),
new System.Xml.Linq.XElement("comment",
new System.Xml.Linq.XComment(TextBox1.Text)));

mydoc.Save("myxmlfile.xml",System.Xml.Linq.SaveOptions .None);
}

@Joseph LeBrech 和@AVD——非常感谢您的回复。该代码会在 myxmlfile 中添加一个新的根元素,所以问题是当页面重新加载时新的根元素没有显示在我的 xml 控件上,因为新的根元素没有包含在我的 xslt 文件中以在 xml 上显示 myxmlfile控制。我不想在 myxmlfile 上添加新的根元素。我只想将从文本框输入的消息插入到 myxmlfile 的现有元素中,该元素是该元素,以便它可以显示在我打算显示 myxmlfile 的 xml 控件上。我希望你能再次为我修改代码。非常感谢您的帮助。我非常感激。

最佳答案

您必须使用 MapPath() 指定绝对文件路径来保存 XML 文档,并且不要增加标签名称,如 comment1、comment2.. 等。

看看代码片段:

protected void Button1_Click(object sender, EventArgs e)
{
string file = MapPath("~/comments.xml");

XDocument doc;

//Verify whether a file is exists or not
if (!System.IO.File.Exists(file))
{
doc = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"),
new System.Xml.Linq.XElement("comments"));
}
else
{
doc = XDocument.Load(file);
}

XElement ele = new XElement("comment",TextBox1.Text);
doc.Root.Add(ele);
doc.Save(file);
}

编辑:如果你想插入 <comment>标记到现有的 xml 文档中,然后无需创建 XDocument。只需加载现有文档并在根目录添加一个新元素。

protected void Button1_Click(object sender, EventArgs e)
{
string file = MapPath("~/myxmlfile.xml");
XDocument doc = XDocument.Load(file);

XElement ele = new XElement("comment",TextBox1.Text);
doc.Root.Add(ele);
doc.Save(file);
}

添加另一个<comment>标签内 <comment> :

 XElement ele = new XElement("comment",TextBox1.Text);
doc.Root.Element("comment").Add(ele);
doc.Save(file);

替换<comment>的文本值标签:

doc.Root.Element("comment").Value = TextBox1.Text;
//doc.Root.Element("comment").Value += TextBox1.Text; //append text
doc.Save(file);

XML 文档:

<?xml version="1.0" encoding="utf-8" ?>
<comments> <!-- Root Node -->
<comment>First Child</comment>
<comment> <!-- Second Child -->
<comment>Nested</comment>
</comment>
</comments>

关于c# - 如何将数据插入到 asp.net 中现有的 xml 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com