문제

다음 설정이있는 구성 파일이 있습니다.

<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>
.

도움이 되었습니까?

해결책

The answer is to apply a unique attribute to the element and use that as the xmu:key (see EDIT above).

다른 팁

Get community tasks code. Replace:

if (keyAttribute == null)
{
                xpath = nodeToFind.Name;
}

With:

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;
                }
            }

In method : private XmlNode locateTargetNode(XmlNode parentNode, XmlNode nodeToFind, XmlAttribute keyAttribute)

Rebuild. You're done :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top