![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
31512 |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 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> пустые! Кто-нибудь сталкивался с такой проблемой? |
|
|
![]() |
31512 |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Новичок Сообщений: 26 Регистрация: 13.3.2008 Из: Красноярск Пользователь №: 119 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Проблему удалось решить
http://doc.trolltech.com/4.3/qdomtext.html Это лишнее подтверждение тому, что не только в России делают некоторые вещи через одно место. Вместо CODE FIRST.setNodeValue("AAA"); нужно писать CODE QDomText domText = Doc.createTextNode("AAA"); FIRST.appendChild(domText); |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 17:06 |