我正在尝试读取一个xml字符串,然后通过插入另一个xml字符串来修改它,我不知道怎么做,我一直在努力,因为我是这个领域的初学者。我在网上搜索,我真的搞混了xmlWriter和xmlReader,因为我不想用xmlDocument,我在微软http://msdn.microsoft.com/en-us/library/cc189056(v=vs.95).aspx上找到了这个
所以我的代码是这样的
String Mainxmltext = "<ClosedKPICalls>" +
"<ServiceInfo> <ServiceNo>HR011</ServiceNo> <ServiceName>Petty cash</ServiceName> "+
"<RecCount>0</RecCount> <RegdKPI>2</RegdKPI> </ServiceInfo> </ClosedKPICalls>";
String xmlinnerText = "<TaskDetails> <name>Jhone</name> <Description>just for testing</Description> </TaskDetails>";
StringBuilder output = new StringBuilder();
using (XmlReader reader = XmlReader.Create(new StringReader(Mainxmltext)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
MessageBox.Show(output.ToString());
}现在我已经成功地读取了第一个字符串,如何在前面的主xml结束标记之前插入第二个测试,我的xml应该如下所示
<ClosedKPICalls>
<ServiceInfo>
<ServiceNo>HR011</ServiceNo>
<ServiceName>Petty cash</ServiceName>
<RecCount>0</RecCount>
<RegdKPI>2</RegdKPI>
</ServiceInfo>
<TaskDetails>
<name>Jhone</name>
<Description>just for testing</Description>
</TaskDetails>
</ClosedKPICalls>请帮帮忙谢谢
发布于 2012-09-26 22:13:32
Linq2Xml更易于使用。
String Mainxmltext = "<ClosedKPICalls>" +
"<ServiceInfo> <ServiceNo>HR011</ServiceNo> <ServiceName>Petty cash</ServiceName> " +
"<RecCount>0</RecCount> <RegdKPI>2</RegdKPI> </ServiceInfo> </ClosedKPICalls>";
String xmlinnerText = "<TaskDetails> <name>Jhone</name> <Description>just for testing</Description> </TaskDetails>";
XDocument xDoc = XDocument.Parse(Mainxmltext);
xDoc.Root.Add(XElement.Parse(xmlinnerText));
var newxml = xDoc.ToString();这就是获得所需xml的全部内容
发布于 2012-09-26 22:14:02
您所要实现的就是将一段xml插入到xml字符串中,您可以使用XElement类来实现这一点。
对于ex。
var xmlString = "<person></person>";
var xEl = XElement.Parse(xmlString);
xEl.Add(XElement.Parse("<name>vijay</name>"));
Console.Writeline(XEl);O/P
<person><name>vijay</name></person>谷歌搜索XElement。
https://stackoverflow.com/questions/12603589
复制相似问题