C# 如何使用XmlReader在不添加结束元素的情况下读取短标记XML?
我的XML如下所示(从文件中读取): 问题是,XmlReader读取XML的方式如下:C# 如何使用XmlReader在不添加结束元素的情况下读取短标记XML?,c#,.net,xml,.net-2.0,C#,.net,Xml,.net 2.0,我的XML如下所示(从文件中读取): 问题是,XmlReader读取XML的方式如下: XmlDocument xml = new XmlDocument(); using (XmlReader reader = XmlReader.Create(xmlPath)) xml.Load(reader); <root> <date month="November" year="2001"> </date> <
XmlDocument xml = new XmlDocument();
using (XmlReader reader = XmlReader.Create(xmlPath))
xml.Load(reader);
<root>
<date month="November" year="2001"> </date>
</root>
也就是说,它将结束元素添加到日期元素中。
稍后我将使用Save方法保存编辑过的XML
我需要最终的XML与原始XML一样具有短标记。
有没有一种方法可以在不添加结束元素的情况下使用XmlReader?如果XML文件不是很大,您可以使用一个适当的编辑器对其进行编辑:
XElement xml = XElement.Load("test.xml");
var date = xml.Element("date");
date.Attribute("year").SetValue("3000");
xml.Save("test.xml");
如果XML文件不是很大,您可以使用一个文件来就地编辑它:
XElement xml = XElement.Load("test.xml");
var date = xml.Element("date");
date.Attribute("year").SetValue("3000");
xml.Save("test.xml");
如果XML文件不是很大,您可以使用一个文件来就地编辑它:
XElement xml = XElement.Load("test.xml");
var date = xml.Element("date");
date.Attribute("year").SetValue("3000");
xml.Save("test.xml");
如果XML文件不是很大,您可以使用一个文件来就地编辑它:
XElement xml = XElement.Load("test.xml");
var date = xml.Element("date");
date.Attribute("year").SetValue("3000");
xml.Save("test.xml");
试试这个解决你的问题。我只需更新年份属性,您可以相应地进行更改
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(Server.MapPath("~/Book.xml"));
XmlNode node;
node = myXmlDocument.DocumentElement;
foreach (XmlNode node1 in node.ChildNodes)
{
if (node1.Name == "date")
{
node1.Attributes["year"].Value = "2005";
}
}
myXmlDocument.Save(Server.MapPath("~/Book1.xml"));
试试这个解决你的问题。我只需更新年份属性,您可以相应地进行更改
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(Server.MapPath("~/Book.xml"));
XmlNode node;
node = myXmlDocument.DocumentElement;
foreach (XmlNode node1 in node.ChildNodes)
{
if (node1.Name == "date")
{
node1.Attributes["year"].Value = "2005";
}
}
myXmlDocument.Save(Server.MapPath("~/Book1.xml"));
试试这个解决你的问题。我只需更新年份属性,您可以相应地进行更改
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(Server.MapPath("~/Book.xml"));
XmlNode node;
node = myXmlDocument.DocumentElement;
foreach (XmlNode node1 in node.ChildNodes)
{
if (node1.Name == "date")
{
node1.Attributes["year"].Value = "2005";
}
}
myXmlDocument.Save(Server.MapPath("~/Book1.xml"));
试试这个解决你的问题。我只需更新年份属性,您可以相应地进行更改
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(Server.MapPath("~/Book.xml"));
XmlNode node;
node = myXmlDocument.DocumentElement;
foreach (XmlNode node1 in node.ChildNodes)
{
if (node1.Name == "date")
{
node1.Attributes["year"].Value = "2005";
}
}
myXmlDocument.Save(Server.MapPath("~/Book1.xml"));
如果您只是在阅读,那么您可以使用
reader.isemptyelment
来检查;但从根本上说,它们的意思是相同的,我在阅读、编辑和保存。我知道它们的意思是一样的,但我需要编辑的XML与原始XML一样包含空元素。如果您只是在阅读,那么可以使用reader.IsEmptyElement
来检查这一点;但从根本上说,它们的意思是相同的,我在阅读、编辑和保存。我知道它们的意思是一样的,但我需要编辑的XML与原始XML一样包含空元素。如果您只是在阅读,那么可以使用reader.IsEmptyElement
来检查这一点;但从根本上说,它们的意思是相同的,我在阅读、编辑和保存。我知道它们的意思是一样的,但我需要编辑的XML与原始XML一样包含空元素。如果您只是在阅读,那么可以使用reader.IsEmptyElement
来检查这一点;但从根本上说,它们的意思是相同的,我在阅读、编辑和保存。我知道它们的意思是一样的,但我需要编辑的XML与原始XML一样包含空元素。它在.Net 2.0中可用吗?@Tom否,它是作为LINQ框架的一部分添加到.Net 3.5中的。如果您必须针对某个特定的.NET运行时,那么值得添加它作为您问题的标记。我添加了它,出于某种原因它被删除了。我在.Net 2.0中重新添加了它?@Tom否,它是作为LINQ框架的一部分添加到.Net 3.5中的。如果您必须针对某个特定的.NET运行时,那么值得添加它作为您问题的标记。我添加了它,出于某种原因它被删除了。我在.Net 2.0中重新添加了它?@Tom否,它是作为LINQ框架的一部分添加到.Net 3.5中的。如果您必须针对某个特定的.NET运行时,那么值得添加它作为您问题的标记。我添加了它,出于某种原因它被删除了。我在.Net 2.0中重新添加了它?@Tom否,它是作为LINQ框架的一部分添加到.Net 3.5中的。如果您必须针对某个特定的.NET运行时,那么值得添加它作为您问题的标记。我添加了它,出于某种原因它被删除了。我又加了一次