Работа с xml. Вопрос.

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Работа с xml. Вопрос.

Сообщение GAMER » 27.11.2014 14:11:26

Код: Выделить всё
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<status><state>Accepted</state>33</status>'

Вот такая строка. Как получить 33?
Разными комбинациями кода я либо получаю пустую строку либо "Accepted33".
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Работа с xml. Вопрос.

Сообщение Kemet » 27.11.2014 14:42:48

это неправильный xml!
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: Работа с xml. Вопрос.

Сообщение Sergei I. Gorelkin » 27.11.2014 15:14:45

xml правильный, хотя и странный.
Нужно что-то вроде
Код: Выделить всё
doc.documentElement.childNodes[1].NodeValue
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Работа с xml. Вопрос.

Сообщение GAMER » 27.11.2014 15:21:37

А что странного?
doc.documentElement.childNodes[1].NodeValue - помогло.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Работа с xml. Вопрос.

Сообщение Sharfik » 27.11.2014 15:52:45

GAMER писал(а):А что странного?

Код: Выделить всё
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<status>
<state>Accepted</state>
33
</status>

Это сложно парсить и читать. Для меня - теряется логика построения файла. Нужно как то так стараться делать.
Код: Выделить всё
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<status>
<state>Accepted</state>
<value>33</value>
</status>
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Работа с xml. Вопрос.

Сообщение Kemet » 27.11.2014 18:25:50

GAMER писал(а):А что странного?

Обычно так не делают, правильно делать атрибуты и читать из значения/
Как-то так:
<status state = "Accepted" value = "33" />
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: Работа с xml. Вопрос.

Сообщение iN0k » 02.12.2014 15:15:41

Kemet писал(а):Обычно так не делают, правильно делать атрибуты и читать из значения

как оценить правильность? где про это можно почитать?

сам постоянно мучаюсь чем пользоваться, но на мой взгляд, прятать данные в атрибуты не хорошо.
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: Работа с xml. Вопрос.

Сообщение hinst » 02.12.2014 15:30:11

Короче: не должно быть чтобы между двумя закрывающими тэгами что-то было, если только это не HTML.

Хорошо:
Код: Выделить всё
<pair>
  <a>Color</a>
  <b>FFFFFF</b>
</pair>

Тогда в коде это будет представлено так:
Код: Выделить всё
pair.a := 'Color';
pair.b := IntToHex($FFFFFF, 6);


Плохо:
Код: Выделить всё
<pair>
  <a>Color</a>
  FFFFFF
</pair>

Тогда не понятно, FFFFFF где будет?
Код: Выделить всё
pair.a := 'Color';
pair.??? := IntToHex($FFFFFF, 6);


Добавлено спустя 1 минуту 10 секунд:
в HTML нормально:
Код: Выделить всё
<span><b>Жирный</b> текст</span>
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Работа с xml. Вопрос.

Сообщение iN0k » 02.12.2014 16:14:00

hinst писал(а):не должно быть чтобы между двумя закрывающими тэгами что-то было, если только это не HTML

гуглил мат часть... там такие холивары :-).
получается что критерий "правильности" только в контексте применения и из него же, контекста, использование атрибутов.
о чем я и хотел намекнуть Kemet`у на фразу
Kemet писал(а):Обычно так не делают, правильно делать атрибуты и читать из значения
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: Работа с xml. Вопрос.

Сообщение qivi » 02.12.2014 16:52:05

Я последнее время в основном пишу в атрибуты, если нужно сохранить последовательность то вложенными узлами. А вообще всяко писал/читал... не противоречит листингу XML - значит правильно.

П.С.: Чувствую ещё с десяток постов и праведники начнут изгонять дьявола )))
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Работа с xml. Вопрос.

Сообщение Kemet » 03.12.2014 19:03:06

iN0k писал(а):о чем я и хотел намекнуть Kemet`у на фразу
Kemet писал(а):Обычно так не делают, правильно делать атрибуты и читать из значения

Работать с атрибутами проще, предсказуемый результат, меньше зависимостей от реализации
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: Работа с xml. Вопрос.

Сообщение Sharfik » 03.12.2014 21:41:53

Kemet писал(а):Работать с атрибутами проще, предсказуемый результат, меньше зависимостей от реализации

А парсеру плохо не станет от длинных строк в атрибутах?)
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Работа с xml. Вопрос.

Сообщение qivi » 04.12.2014 10:44:30

Работать с атрибутами проще, предсказуемый результат, меньше зависимостей от реализации

Только тут надо принимать во внимание что DOM не гарантирует сохранность последовательности атрибутов при чтении, поэтому когда последовательность то же является значимой атрибуты не применимы.

А парсеру плохо не станет от длинных строк в атрибутах?)

"Война и мир" Лва Толстого засовывать в атрибут не пробовал, но особо не забочусь о длине строк, нареканий не имею. Если у тебя XML файл раздут до нескольких десятков мегобайт то снижение производительности пожалуй естествено.
Последний раз редактировалось qivi 04.12.2014 15:12:05, всего редактировалось 1 раз.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Работа с xml. Вопрос.

Сообщение GAMER » 04.12.2014 14:02:56

Большая проблема, когда нужно парсить то, что создано другими и чихать они на тебя хотели :)
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Работа с xml. Вопрос.

Сообщение Sharfik » 04.12.2014 14:18:22

qivi писал(а):"Война и мир" Лва Толстого засовывать в атрибут не пробовал, но особо не забочусь о длине строк, нареканий не имею. Если у тебя XML файл раздут до нескольких десятков мегобайт то снижение производительности пожалуй естествено.

Пока не пробовал. Опасался граблей и просто в значение нода сразу стал писать.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru