XML是:
source
我的代码验证了id = 1的XmlNode是否重复,但是如果它存在,我想将abc5和abc6移动到RNC id = 01的第一次出现并具有以下内容:
<RNC id="00">
<abc1>
</abc1>
<abc2>
</abc2>
</RNC>
<RNC id="01" >
<abc3>
</abc3>
<abc4>
</abc4>
</RNC>
<RNC id="01">
<abc5>
</abc5>
<abc6>
</abc6>
</RNC>
如何用C#实现这一目标?我没有使用LINQ,我正在使用XmlDocument,XmlNodeList和XmlNode。
由于
答案 0 :(得分:1)
浏览文档的一个功能是RandomAccessFile.c
,一种用于XML文档的查询语言。 XPath代表XML Path Language。它是专门用于处理XML文档部分的语言。
1)选择所有重复的ID
您可以使用以下xpath:
XPath
//RNC[@id= following::RNC/@id and not(@id = preceding::RNC/@id)]
2)用find next node with the same id, work in one direction
3)将第二个RNC中的子节点添加到第一个,然后从xmlDoc中删除
SelectNodes("//RNC[@id='id']")
答案 1 :(得分:0)
我有一个带有新RNC ID的字符串,比方说ID1,所以ID2将被修改为ID1,然后我检查ID1是否按照低值重复
using(XmlNodeList RNC_LIST = xmlDoc.GetElementsByTagName("RNC"))
{
foreach(XmlNode RNC in RNC_LIST)
{
if (RNC.Attributes["id"].Value == target_rnc)
{
/// Move the XmlNodes Here
}
}
}
答案 2 :(得分:0)
试试xml linq
Hi customer, we remember your appointment xx