Вопрос № 76262: Уважаемые эксперты!
Помогите понять, как в opera обращаться к кусочкам XML документа.
Приходит следующее:
<?xml version="1.0"?>
<!DOCTYPE OPIT [
<!ELEMENT OPIT ANY>
<!ELEMENT O (#PCDATA)>
]>
<OPIT> <O>...Вопрос № 76339: Уважаемые эксперты! Подкажите пожалуйста, как код приведенный в приложении, вынести в отдельный файл скрипта.
Спасибо!...Вопрос № 76423: Подскажите код ссылки на яве, чтобы при нажатии сразу ОТКРЫВАЛСЯ файл!. Мне нужно, чтоб создать autorun на html. Заранее благодарен!...Вопрос № 76463: Здравствуйте, ув. эксперты.
Имеется простая форма с выпадающим списком. В списке по умолчанию (режим "ничего не выбрано") стоит "...". Пример формы в приложении.
Задача: делать проверку этой формы, чтобы при нажатии кнопки...Вопрос № 76589: Помагите реализовать: осуществляем ввод в форму набор цифр, необходимо после перехода в слующее поле преобразовать в другой формат. Например; ввели 99966633322, возвратить в этоже поле вот такой вид 999-999-999 99. И вообще возможно ли задавать маску...
Вопрос
№ 76.262
Уважаемые эксперты!
Помогите понять, как в opera обращаться к кусочкам XML документа.
Приходит следующее:
]> qwer ty
Надо сделать алерт, выводящий ty.
В IE 6.0 работает ".documentElement.childNodes(1).xml". В opera 8.54 не хочет.
Хотелось бы увидеть код, подходящий для обоих браузеров.
В приложении полный код эксперимента.
И ещё факультативный вопрос - как выглядит скрипт PHP, выводящий этот XML? Почему не работает
Отвечает: HookEst
Здравствуйте, Олег Владимирович!
Оперы 8.54 у меня нет, все проверял в Опера 9.10.
Как Вы уже, наверное, заметили, реализация DOM XML в Opera несколько отлична от IE.
Во первых, нет свойства xml. Для того, чтобы преобразовать XMLNode в строку можно использовать
объект XMLSerializer:
XMLSerializer().serializeToString(SomeNode).
Во вторых, если Вам нужно получить список только вложеных тегов, не используйте childNodes.
(childNodes включает также все text и comment nodes, причем Опера включает даже пустой текст, в отличии от IE)
Можно в Опера(не в IE)использовать childNodes.tags(), но правильнее ИМХО, будет использовать методы DOM XML
такие, как selectNodes и selectSingleNode, они работают как в Опера так и в IE.
В Вашем случае можно написать:
alert(XMLSerializer().serializeToString(req.responseXML.documentElement.selectNodes('O')[1]))
или, используя XPath фильтр:
alert(XMLSerializer().serializeToString(req.responseXML.documentElement.selectSingleNode('O[position()=2]')))
вообщем, нужно смотреть доки по XMLDOM и XPath(их много, например xml.nsu.ru или w3schools.com),
по Опере у меня мануалов нет, но мне пригодилась функция:
function list(o){
//выводит свойства объекта о и их значения в PRE элемент с ID=pre
for(n in o)
pre.innerText+=n+' = '+ro[n]+'
';
}
Что касается PHP, то в нем весь текст, который находится вне PHP тегов, выводится как есть:
<?php
//директива php.ini short_open_tag должна быть отключена!
header("Content-type: text/xml; charset=windows-1251");
?>
<?xml version="1.0"?>
<!DOCTYPE OPIT [
<!ELEMENT OPIT ANY>
<!ELEMENT O (#PCDATA)>
]>
<OPIT> <O>qwer</O>
<O>ty</O>
</OPIT>
или по аналогии с opit.pl можно использовать HEREDOC синтаксис
Удачи!
--------- Краткость приятна, когда она сочетается с ясностью ^_-
Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 19.02.2007, 15:41
Вопрос № 76.423
Подскажите код ссылки на яве, чтобы при нажатии сразу ОТКРЫВАЛСЯ файл!. Мне нужно, чтоб создать autorun на html. Заранее благодарен!
Отправлен: 19.02.2007, 13:58
Вопрос задал: VVVictor (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Илья Андреевич
Здравствуйте, VVVictor!
window.open("file.txt","name"); да и хватит. ну и почитайте описание к методу open объекта window
Приложение:
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 19.02.2007, 14:52
Вопрос № 76.463
Здравствуйте, ув. эксперты.
Имеется простая форма с выпадающим списком. В списке по умолчанию (режим "ничего не выбрано") стоит "...". Пример формы в приложении.
Задача: делать проверку этой формы, чтобы при нажатии кнопки Submit, скрипт проверял, что выбрано в этом выпадающем списке. И если там ничего не выбрано (а точнее осталось значение по умолчанию - "..."), то давал сообщение и возвращался назад (т.е. событие не выполнял).
Спасибо.
P.S. Можно также на примере показать исполнение "обязательных полей". Хотя бы одно. Остальное сделаю по аналогии.
P.S.S. В javascript полный ноль.
Отвечает: PaVeL_Ekt
Здравствуйте, Грибенников Александр Сергеевич!
Проверку следует делать так:
Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 20.02.2007, 06:41
Отвечает: Angel7
Здравствуйте, Грибенников Александр Сергеевич!
Ответ предыдущего эксперта не совсем верен.
В приложении привожу полный код страницы. Вам остается только скопировать его и заменить старый.
Кстати, зачастую у пользователя бывает отключен Ява, поэтомурекомедую также сделать проверку и в РНР-файле. Если возникнут проблемы с этим- обращайтесь.
Удачи!
Приложение:
--------- Краткость приятна, когда она сочетается с ясностью ^_-
Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 20.02.2007, 13:30
Вопрос № 76.589
Помагите реализовать: осуществляем ввод в форму набор цифр, необходимо после перехода в слующее поле преобразовать в другой формат. Например; ввели 99966633322, возвратить в этоже поле вот такой вид 999-999-999 99. И вообще возможно ли задавать маску ввода? Ниже представлен код.
Приложение:
Отправлен: 20.02.2007, 13:24
Вопрос задал: SkyNoSky (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Grigory
Здравствуйте, SkyNoSky!
Если длинна ввода все время одна и та же, то можно использовать substring и indexOf для вставки нужного символа в нужной позиции. Вот тут можно посмотреть документацию по использованию этих методов: