我有以下XML
<ROOT>
<FSM338_Container>
<FSM338_Details>
<RunDate>2013-05-29 09:43:00</RunDate>
<Uic>21690</Uic>
<Date>2013-06-10 00:00:00</Date>
<CASHBREAK>199</CASHBREAK>
<CASHLUNCH>199</CASHLUNCH>
</FSM338_Details>
<FSM338_Details>
<RunDate>2013-05-29 09:43:00</RunDate>
<Uic>21690</Uic>
<Date>2013-06-10 00:00:00</Date>
<CASHBREAK>199</CASHBREAK>
<CASHLUNCH>199</CASHLUNCH>
</FSM338_Details>
</FSM338_Container>
<BillingReport>
<RunDate>2013-05-29 09:43:00</RunDate>
<Uic>21690</Uic>
<Date>2013-06-10 00:00:00</Date>
<gaindacd>1</gaindacd>
<docnum>07000F</docnum>
</BillingReport>
<DataElements>
<unitid>12345</unitid>
<fbocost>0.00</fbo>
</DataElements>
</ROOT>
每当我找到名为“Uic”的元素时,我需要加载xml doc并添加几个元素。简而言之,如果我发现“Uic”在所有位置添加与UIC相同级别的元素<someElement>my stuff here</someElement>
。
我用过
XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"path_to_xml.xml");
list = xDoc.GetElementsByTagName("Uic");
我使用insertBefore添加我的元素,但我可以将它复制到第一个元素
答案 0 :(得分:1)
您可以使用接受xpath表达式的XmlNode的SelectNodes()方法。
XmlNodeList nodes = xDoc.DocumentElement.SelectNodes("Uic");
foreach(XmlNode node in nodes) {
XmlElement element = xDoc.CreateElement("SomeElement");
element.InnerText = "anything";
node.ParentNode.AppendChild(element);
}