crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> XML - запись значения узла, XML - запись значения узла
31512
  опции профиля:
сообщение 20.3.2008, 22:49
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 26
Регистрация: 13.3.2008
Из: Красноярск
Пользователь №: 119

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, Уважаемые! Столкнулся с проблемой записи некоторого значения в узел XML.
Вот XML исходный:
CODE

<SEPARATOR PORT="3333" IP="192.168.34.21" NAME="separator" COLOR="1234567" >
<PROPERTIES>
</PROPERTIES>
</SEPARATOR>


Таким ожидается получить его получить после добавления дочерних узлов в <PROPERTIES>:
CODE
<SEPARATOR PORT="3333" IP="192.168.34.21" NAME="separator" COLOR="1234567" >
<PROPERTIES>
<PROPERTY CODE="TEST_PROP1" >
<VALUE>AAA</VALUE>
</PROPERTY>
<PROPERTY CODE="TEST_PROP2" >
<VALUE>AAA</VALUE>
<VALUE>AAA</VALUE>
</PROPERTY>
<PROPERTY CODE="TEST_PROP3" >
<VALUE>AAA</VALUE>
<VALUE>AAA</VALUE>
<VALUE>AAA</VALUE>
</PROPERTY>
</PROPERTIES>
</SEPARATOR>


А таким он получается:
CODE
<SEPARATOR PORT="3333" IP="192.168.34.21" NAME="separator" COLOR="1234567" >
<PROPERTIES>
<PROPERTY CODE="TEST_PROP1" >
<VALUE/>
</PROPERTY>
<PROPERTY CODE="TEST_PROP2" >
<VALUE/>
<VALUE/>
</PROPERTY>
<PROPERTY CODE="TEST_PROP3" >
<VALUE/>
<VALUE/>
<VALUE/>
</PROPERTY>
</PROPERTIES>
</SEPARATOR>


Код добавления узлов:
CODE
CPropertyNode* CSeparatorNode::CreateNewProperty(QString CODE, int ValueCount)
{
QDomElement PropertiesNode = GetNode().firstChildElement("PROPERTIES");
QDomElement NewProperty = GetNode().ownerDocument().createElement("PROPERTY");
PropertiesNode.appendChild(NewProperty);
NewProperty.setAttribute("CODE", CODE);
if (ValueCount > 0)
{
for(int i=0; i<ValueCount; i++)
{
QDomElement ValueNode = GetNode().ownerDocument().createElement("VALUE");
NewProperty.appendChild(ValueNode);
ValueNode.setNodeValue("AAA");
QString S = "Значение свойства установилось в " + ValueNode.nodeValue();
qDebug(S.toAscii());//Здесь всё в порядке, выдаёт "AAA"
}
}
CPropertyNode* Property = new CPropertyNode(this, ValueCount);
Property->ProcessByNode(NewProperty);
Properties.append(Property);
return Property;
}


Код работает отлично. Узлы создаются. В консоли видно, что установилось желаемое значение узла <VALUE>. Однако после сохранения значения узлов <VALUE> пустые!
Кто-нибудь сталкивался с такой проблемой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 6:13