1

ノードに複数の「値」を追加したい関数があります。関数は次のとおりです。

 private void GetCategory(DataRow reader, XmlElement myNode)
    {
        foreach (DataRow categoryRow in reader.GetChildRows("Article_Category"))
        {
            myNode.LastChild.InnerText = categoryRow["CATEGORY_NAME"].ToString();
        }
    }

myNode.OuterXml は次のようになります。

<field itemid="{2C16342E-7662-432B-9895-5EDB15914D7F}" language="en" version="1" 
fieldid="{1F5956D6-EABE-4F74-A248-B25B7EE90350}" name="Categories" title=""
type="Multilist" source="/sitecore/content/data/Categories" section="Content" 
tooltip=""><value>US</value></field>

私はこのようなものを見たかった:

<field itemid="{2C16342E-7662-432B-9895-5EDB15914D7F}" language="en" version="1" 
fieldid="{1F5956D6-EABE-4F74-A248-B25B7EE90350}" name="Categories" title=""
type="Multilist" source="/sitecore/content/data/Categories" section="Content" 
tooltip=""><value>US</value><value>China</value><value>India</value></field>

この機能を追加しました:

 foreach (DataRow categoryRow in reader.GetChildRows("Article_Category"))
        {
            var newNode = myNode.OwnerDocument.CreateElement("Value");
            newNode.InnerText = categoryRow["CATEGORY_NAME"].ToString();
            myNode.AppendChild(newNode);

        }

これは私のXMLがどのように見えるかという理由で機能しません:

 <field itemid="{9259D344-3500-4887-9CDF-F00876F20F2B}" language="en" version="1"
 fieldid="{1F5956D6-EABE-4F74-A248-B25B7EE90350}" name="Country" title="" 
 type="Multilist" source="/sitecore/content/data/Countries" section="Content"
 tooltip=""><value /><Value>Currency Markets</Value></field>

合計できない「値」タグがあります。

4

1 に答える 1

1

現在のコードは、LastChild のテキストを上書きします。ノードを追加する必要があります。

    //untested
    foreach (DataRow categoryRow in reader.GetChildRows("Category"))
    {
      //myNode.LastChild.InnerText = categoryRow["CATEGORY_NAME"].ToString();

        var newNode = myNode.OwnerDocument.CreateElement("value");
        newNode.InnerText = categoryRow["CATEGORY_NAME"].ToString();
        myNode.AppendChild(newNode);
    }
于 2012-10-02T14:34:13.627 に答える