假设您有一个包含以下设置的配置文件:
<someNode>
<node>value A</node>
<node>value B</node>
<node>value C</node>
</someNode>
对于我的生活,我无法弄清楚如何让XmlMassUpdate注入以下内容:
<someNode>
<node>value 1</node>
<node>value 2</node>
<node>value 3</node>
</someNode>
结果如下:
<someNode>
<node>value 1</node>
<node>value B</node>
<node>value C</node>
</someNode>
我正在拍摄的是:
<someNode>
<node>value A</node>
<node>value B</node>
<node>value C</node>
<node>value 1</node>
<node>value 2</node>
<node>value 3</node>
</someNode>
编辑:我找到了一个临时解决方案(见下文)......但仍然对更好的事情感兴趣。
<someNode>
<node xmu:key="id" id="1">value A</node>
<node xmu:key="id" id="2">value B</node>
<node xmu:key="id" id="3">value C</node>
</someNode>
答案 0 :(得分:3)
答案是对元素应用唯一属性并将其用作xmu:键(参见上面的编辑)。
答案 1 :(得分:2)
获取社区任务代码。 替换:
if (keyAttribute == null)
{
xpath = nodeToFind.Name;
}
使用:
if (keyAttribute == null)
{
xpath = nodeToFind.Name;
if (nodeToFind.ChildNodes.Count == 1 && nodeToFind.FirstChild.NodeType == XmlNodeType.Text)
{
xpath = string.Format("{0}[{1}='{2}']/{1}", parentNode.LocalName, nodeToFind.LocalName,
nodeToFind.InnerText, nodeToFind.LocalName);
parentNode = parentNode.ParentNode;
}
}
方法:
private XmlNode locateTargetNode(XmlNode parentNode, XmlNode nodeToFind, XmlAttribute keyAttribute)
重建。 你完成了:))