2012-10-02 36 views
1

我有一個函數,我想將多個'值'添加到節點。下面是函數:添加多個XmlElement.LastChild.InnerText

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

     } 

它不工作becoz這是我的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> 

有一個「價值」標籤不使積少成多。

+0

那麼,「Article_Category」指的是「美國」,「中國」還是「貨幣市場」?而空節點是另一個問題。 –

+0

Article_Category指向美國/中國/貨幣市場。基本上他們是類別。我只是將它們定義爲國家:\ –

回答

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); 
    } 
+0

請參閱我的編輯。 –

+0

我加了這行:myNode.RemoveChild(myNode.LastChild); –