c# - 如何在 C# 中基于匹配 XmlNode 从层次结构中克隆单个 XML
问题描述
这是 XML 结构:
<root>
<listOfItems>
<item>
<lineItem>1</lineItem>
<itemDetail>
<partNum>A1</partNum>
<color>red</color>
<qty>4</qty>
</itemDetail>
</item>
<item>
<lineItem>2</lineItem>
<itemDetail>
<partNum>B2</partNum>
<color>blue</color>
<qty>2</qty>
</itemDetail>
</item>
<item>
<lineItem>3</lineItem>
<itemDetail>
<partNum>C3</partNum>
<color>green</color>
<qty>1</qty>
</itemDetail>
</item>
</listOfItems>
</root>
知道 partNum 是 B2,我将如何克隆 B2 所属的整个项目,所以我有 2 个相同的 B2 项目。
解决方案
您可以使用CloneNode函数复制节点并使用AppendChild将其附加到层次结构中的相关位置。
// find the node
var target = doc.SelectSingleNode("root/listOfItems/item/itemDetail/partNum[text()='B2']");
// clone
var clonedNode = target.ParentNode.CloneNode(true);
// attach
target.ParentNode.ParentNode.AppendChild(clonedNode);
推荐阅读
- html - Bootstrap 切换图标未显示
- python-3.x - 如何使用 Selenium 和 Python 从多个 span 元素中提取文本内容
- c# - 关闭Form时如何正确释放D2D1的Bitmap?
- python - 是否可以从主文件所在的目录外部导入 python 文件?
- swift - 如何在 CoreData 中存储 UInt64?
- php - PHP 奇怪的行为 - 变量似乎未设置,除非 print()ed
- jmeter - 如何从请求正文中检索变量
- node.js - nodejs中尚未存在的键的dynamodb原子增加
- python - 如何将用户定义的对象参数传递给烧瓶 post 方法?
- python - 如何在python中绘制对角线图