XmlReader AppendChild не добавляет того же дочернего значения - PullRequest
0 голосов
/ 18 марта 2009
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 следующим образом:

<UpdateRecipient>
<LIST_ID>85628</LIST_ID>
<EMAIL>somebody@domain.com</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>somebody@domain.com</EMAIL>
<COLUMN>
<NAME>Status</NAME>
<VALUE>Opted In</VALUE>
</COLUMN>
</UpdateRecipient>

Когда он попадает в первый AppendChild (столбец), а затем в имя и значение, частота показывает «найти», но затем «Статус» переопределяется, и я хочу, чтобы он просто добавлял новый «под», и я не уверен, почему он переопределяет, а не добавляет другой тег.

Ответы [ 3 ]

4 голосов
/ 18 марта 2009

Проблема в том, что вы повторно используете переменные "column", "name" и "value". Вам необходимо создать новые XmlElements для второго набора.

0 голосов
/ 18 марта 2009

Я думал, что вы можете снова использовать существующий элемент снова, но не можете ..

0 голосов
/ 18 марта 2009

Не знаю, но попробуйте сделать это в обратном порядке. Это то, что я всегда делал. Не добавляйте updateRecipient в корень, пока не закончите с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...