0

我有以下 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 文档并添加几个元素。简而言之,如果我发现“Uic”<someElement>my stuff here</someElement>在所有位置添加与 UIC 相同级别的元素。

我用过

XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"path_to_xml.xml");
list = xDoc.GetElementsByTagName("Uic");

我使用 insertBefore 添加我的元素,但我可以让它只复制到第一个元素

4

1 回答 1

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);
}
于 2013-06-18T19:04:01.703 回答