将元素添加到 xml fie c#
Adding elements to xml fie c#
XmlDocument 文件:
<?xml version="1.0"?>
<config>
<newsy>
<category id="sport">
<source>
<contelemname>cont</contelemname>
<refresh>3</refresh>
<url>http://sport.wp.pl/rss.xml</url>
</source>
<source>
<contelemname>cont</contelemname>
<refresh>5</refresh>
<url>http://moto.wp.pl/rss.xml</url>
</source>
</category>
</newsy>
</config>
如何向此文件添加新项目,如新来源(url,刷新)或新类别?或者如何删除类别和来源。
代码以
开头
XDocument doc = XDocument.Load(path);
但是以后呢?
我喜欢你看一看:https://msdn.microsoft.com/en-us/library/ms162365(v=vs.110).aspx, https://msdn.microsoft.com/en-us/library/system.xml.xmlnode(v=vs.110).aspx and https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.appendchild(v=vs.110).aspx
Microsoft 文档是此类问题的重要来源。
加载Xml
你可以通过字符串
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xml);
或者通过使用文件流(您可以使用您现在拥有的 XDocument)
XmlDocument xmlDocument = new XmlDocument();
using(XmlReader xmlReader = xDocument.CreateReader())
{
xmlDocument.Load(xmlReader);
}
正在选择节点
为此你可以使用 XPath (http://www.w3schools.com/xsl/xpath_syntax.asp, wich returns a XmlNodeList
XmlNodeList categoryNodes = xmlDocument.SelectNodes("config//newsy//category");
创建新元素
要创建新元素,您可以使用 CreateElement 方法(还有其他创建属性的方法 e.t.c。请参阅 Microsoft 文档)。
XmlNode newSource = xmlDocument.CreateElement("source");
XmlNode newSourceUrl = xmlDocument.CreateElement("url");
newSourceUrl.InnerText = "http://www.test.com";
newSource.AppendChild(newSourceUrl);
这将创建一个新的源元素和一个 url 元素。 url 元素将附加到源元素。
将其添加到类别
将其添加到类别节点。
if (categoryNodes != null && categoryNodes.Count > 0)
categoryNodes[0].AppendChild(newSource);
搜索要将子节点附加到的节点。您还可以像这样检查某个属性:
foreach (XmlNode node in categoryNodes)
{
if (string.Equals(node.Attributes["id"].Value.ToString(), "sport", StringComparison.OrdinalIgnoreCase))
node.AppendChild(newSource);
}
保存
保存Xml文档。要将其保存到磁盘:
xmlDocument.Save(path);
新XML
<?xml version="1.0"?>
<config>
<newsy>
<category id="sport">
<source>
<contelemname>cont</contelemname>
<refresh>3</refresh>
<url>http://sport.wp.pl/rss.xml</url>
</source>
<source>
<contelemname>cont</contelemname>
<refresh>5</refresh>
<url>http://moto.wp.pl/rss.xml</url>
</source>
<source>
<url>http://www.test.com</url>
</source>
</category>
</newsy>
</config>
希望对您有所帮助。
XmlDocument 文件:
<?xml version="1.0"?>
<config>
<newsy>
<category id="sport">
<source>
<contelemname>cont</contelemname>
<refresh>3</refresh>
<url>http://sport.wp.pl/rss.xml</url>
</source>
<source>
<contelemname>cont</contelemname>
<refresh>5</refresh>
<url>http://moto.wp.pl/rss.xml</url>
</source>
</category>
</newsy>
</config>
如何向此文件添加新项目,如新来源(url,刷新)或新类别?或者如何删除类别和来源。
代码以
开头 XDocument doc = XDocument.Load(path);
但是以后呢?
我喜欢你看一看:https://msdn.microsoft.com/en-us/library/ms162365(v=vs.110).aspx, https://msdn.microsoft.com/en-us/library/system.xml.xmlnode(v=vs.110).aspx and https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.appendchild(v=vs.110).aspx
Microsoft 文档是此类问题的重要来源。
加载Xml
你可以通过字符串
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xml);
或者通过使用文件流(您可以使用您现在拥有的 XDocument)
XmlDocument xmlDocument = new XmlDocument();
using(XmlReader xmlReader = xDocument.CreateReader())
{
xmlDocument.Load(xmlReader);
}
正在选择节点
为此你可以使用 XPath (http://www.w3schools.com/xsl/xpath_syntax.asp, wich returns a XmlNodeList
XmlNodeList categoryNodes = xmlDocument.SelectNodes("config//newsy//category");
创建新元素
要创建新元素,您可以使用 CreateElement 方法(还有其他创建属性的方法 e.t.c。请参阅 Microsoft 文档)。
XmlNode newSource = xmlDocument.CreateElement("source");
XmlNode newSourceUrl = xmlDocument.CreateElement("url");
newSourceUrl.InnerText = "http://www.test.com";
newSource.AppendChild(newSourceUrl);
这将创建一个新的源元素和一个 url 元素。 url 元素将附加到源元素。
将其添加到类别
将其添加到类别节点。
if (categoryNodes != null && categoryNodes.Count > 0)
categoryNodes[0].AppendChild(newSource);
搜索要将子节点附加到的节点。您还可以像这样检查某个属性:
foreach (XmlNode node in categoryNodes)
{
if (string.Equals(node.Attributes["id"].Value.ToString(), "sport", StringComparison.OrdinalIgnoreCase))
node.AppendChild(newSource);
}
保存
保存Xml文档。要将其保存到磁盘:
xmlDocument.Save(path);
新XML
<?xml version="1.0"?>
<config>
<newsy>
<category id="sport">
<source>
<contelemname>cont</contelemname>
<refresh>3</refresh>
<url>http://sport.wp.pl/rss.xml</url>
</source>
<source>
<contelemname>cont</contelemname>
<refresh>5</refresh>
<url>http://moto.wp.pl/rss.xml</url>
</source>
<source>
<url>http://www.test.com</url>
</source>
</category>
</newsy>
</config>
希望对您有所帮助。