在将节点添加到现有xml时,我遇到了问题。我不确定节点是否是正确的名称。如果不是,可以有人纠正我吗?它要大得多,但这个例子应该能起作用。
以下是xml文件的样子。
<?xml version="1.0" encoding="utf-8"?>
<MovieData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Movie>
<Name>Death Race</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
</Movie>
<Movie>
<Name>Death Race 2</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
</Movie>
</MovieData>现在我想让它变成这样。
<?xml version="1.0" encoding="utf-8"?>
<MovieData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Movie>
<Name>Death Race</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
<Time>time</Time>
</Movie>
<Movie>
<Name>Death Race 2</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
<Time>time</Time>
</Movie>
</MovieData>这就是我到目前为止所拥有的。我希望能够在下面的代码中添加时间节点和值。
XmlDocument doc = new XmlDocument();
doc.Load(movieListXML);
XmlNode node = doc.SelectSingleNode("/MovieData");
foreach (XmlNode movie in node.SelectNodes("Movie"))
{
if (movie != null)
{
// Do stuff here.
// I'm not sure what to do here.
}
}这也没用。
XmlDocument doc = new XmlDocument();
doc.Load(movieListXML);
XmlNode node = doc.SelectSingleNode("/MovieData");
foreach (XmlNode movie in node.SelectNodes("Movie"))
{
if (movie != null)
{
// Do stuff here.
// I'm not sure what to do here.
using(XmlWriter writer = node.CreateNavigator().AppendChild())
{
writer.WriteStartElement("SeriesType", movieListXML);
writer.WriteElementString("Time", movieListXML, "time");
writer.WriteEndElement();
}
}
}发布于 2013-10-09 22:04:36
我通常使用Linq的XDocument来处理XML。您需要在using语句中添加一个System.Xml.Linq。应该是这样的:
string movieListXML = @"c:\test\movies.xml";
XDocument doc = XDocument.Load(movieListXML);
foreach (XElement movie in doc.Root.Descendants("Movie"))
{
movie.Add(new XElement("Time", "theTime"));
}
doc.Save(movieListXML);发布于 2013-10-09 21:39:55
XmlDocument doc = new XmlDocument();
doc.Load(movieListXML);
XmlNode node = doc.SelectSingleNode("/MovieData");
foreach (XmlNode movie in node.SelectNodes("Movie"))
{
if (movie != null)
{
XmlElement elem = doc.CreateElement("Time");
elem.InnerText = "time";
movie.AppendChild(elem);
}
}
doc.Save(movieListXML);https://stackoverflow.com/questions/19283138
复制相似问题