2009-03-18 2 views
0
XmlElement updateRecipient = doc.CreateElement("UpdateRecipient"); 
       XmlElement email = doc.CreateElement("EMAIL"); 
       XmlElement listID = doc.CreateElement("LIST_ID"); 
       XmlElement column = doc.CreateElement("COLUMN"); 
       XmlElement name = doc.CreateElement("NAME"); 
       XmlElement value = doc.CreateElement("VALUE") 

       root.AppendChild(body); 
       body.AppendChild(updateRecipient); 
       updateRecipient.AppendChild(listID); 
       listID.InnerText = _listID; 
       updateRecipient.AppendChild(email); 
       email.InnerText = _email; 
       updateRecipient.AppendChild(column); 
       column.AppendChild(name); 
       name.InnerText = _columnNameFrequency; 
       column.AppendChild(value); 
       value.InnerText = _actionID.ToString(); 
       updateRecipient.AppendChild(column); 
       column.AppendChild(name); 
       name.InnerText = _columnNameStatus; 
       column.AppendChild(value); 

를 추가하지 않습니다 나는 updateRecipient 요소에서 하나의 서브 열 두 대신을 받고 결국. 나는 모두가 같은 UpdateRecipient 노드 아래에 표시해야합니다XmlReader를에 appendChild, 어떤 이유로 같은 자식 값

<UpdateRecipient> 
<LIST_ID>85628</LIST_ID> 
<EMAIL>[email protected]</EMAIL> 
<COLUMN> 
<NAME>Frequency</NAME> 
<VALUE>1</VALUE> 
</COLUMN> 
<COLUMN> 
<NAME>Status</NAME> 
<VALUE>Opted In</VALUE> 
</COLUMN> 
</UpdateRecipient> 

하지만 지금까지 나는 단 하나의 무엇입니까 :

<UpdateRecipient> 
<LIST_ID>85628</LIST_ID> 
<EMAIL>[email protected]</EMAIL> 
<COLUMN> 
<NAME>Status</NAME> 
<VALUE>Opted In</VALUE> 
</COLUMN> 
</UpdateRecipient> 

는 처음에 appendChild (열)에 도달 한 후 이름과 값, 빈도는 찾기를 나타내지 만 나중에 상태에 의해 과소 평가되며 새로운 태그를 추가하기를 원하며 다른 태그를 추가하는 것보다 우선 적용되는 이유를 모르겠습니다.

답변

4

문제는 "열", "이름", & "값"변수를 재사용한다는 것입니다. 두 번째 집합에 대해 새 XmlElements를 만들어야합니다.

+0

제 생각 엔 당신이 머리에 못을 박은 것 같습니다. – Cerebrus

+0

그게 전부입니다 : 동일한 객체를 가진 AppendChild를 다시 호출하면 이전 위치에서 노드가 제거되어 새로운 노드에 놓입니다. – Richard

0

모르겠지만 반대 순서로 시도하십시오. 그것이 내가 항상 해왔 던 것입니다. UpdateRecipient를 끝내기 전까지 루트에 updateRecipient를 추가하지 마십시오.

0

기존 요소를 다시 재사용 할 수는 있지만 생각할 수는 없습니다.

관련 문제