2

次の設定の構成ファイルがあるとします。

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

2 に答える 2

3

答えは、要素に一意の属性を適用し、それをxmu:keyとして使用することです(上記の編集を参照)。

于 2011-03-16T22:44:16.183 に答える
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)

再構築します。完了です:)

于 2012-06-22T09:32:06.660 に答える