powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / libxml
3 сообщений из 3, страница 1 из 1
libxml
    #36483946
O.leg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, подскажите
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<root>
  <node1>
    some_text
    <node2>
      other_text
    </node2>
  </node1>
</root>
в либхмл есть функция xmlNodeGetContents
но для нода <node1> она возвращает весь контент детей вместе с other_text.
а есть ли функция, чтоб возвратила только текстовое значение из <node1>, то есть some_text?
также хочется поменять текст some_text на some_text2, но если вызвать xmlNodeSetContents, то, естесна, в полном соответствии с поведением xmlNodeGetcontents, получаем
Код: plaintext
1.
2.
3.
4.
<root>
  <node1>
    some_text2
  </node1>
</root>
то есть срубает весь контент вместе с детьми.
чё подскажете?
...
Рейтинг: 0 / 0
libxml
    #36492832
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O.leg,

В данном случае, some_text является элементом-ребенком от node1.
То есть делаешь что-то в духе:
Код: plaintext
1.
2.
3.
4.
5.
xmlNodePtr	child = xmlFirstElementChild(pointer_to_node1);
do {
   if (xmlNodeIsText(child)) {
      printf("%s\n", xmlNodeGetContent(child));
  }
}while (child = xmlNextElementSibling(child));
...
Рейтинг: 0 / 0
libxml
    #36493345
O.leg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо
век живи - век учись
для истории - уточню дух, в котором надо делать:
Код: plaintext
1.
2.
3.
4.
5.
xmlNodePtr	child = pointer_to_node1->children;
do {
   if (xmlNodeIsText(child)) {
      printf("%s\n", xmlNodeGetContent(child));
  }
}while (child = child->next);

зы. xmlFirstElementChild и xmlNextElementSibling тоже фильтруют детей, выбирая только тех, у кого
Код: plaintext
child->type==XML_ELEMENT_NODE
промучился с этим, пока не вчитался в имена функций.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / libxml
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]