Подобрать регулярное выражение
Всем привет!
У меня есть текст со строками вида <Inline название="узелок" параметр="1.6" параметры="0.028, -0.02, 0"/> Но попадаются такие <Inline название="узелок1" параметр="1.6" параметры="0.028, -0.02, 0"></Inline> Хочу набить массив из кусков ['название="узелок" параметр="1.6" параметры="0.028, -0.02, 0"/>', 'название="узелок1" параметр="1.6" параметры="0.028, -0.02, 0"></Inline>'] Однако не удаётся регулярное выражение, чтобы оба вида строк брало, типа: mas = /название=.*\n*.*(\/>)|(</Inline>)/.exec(массив[i]); |
Это xml, с ним не через регулярные выражения работают, а через XML парсер:
var document = new DOMParser().parseFromString(xml, 'application/xml'); // примеры поиска узлов: document.getElementsByName('Inline'); document.querySelectorAll('Inline[название="узелок1"]'); // доступ к атрибутам найденного узла: node.attributes |
Цитата:
var str='<Inline название="узелок" параметр="1.6" параметры="0.028, -0.02, 0"/>' str+='<Inline название="узелок1" параметр="1.7" параметры="0.029, -0.03, 0"></Inline>'; alert(str.match(/(название="[\s\S]*?)(?=((\/>)|(><)))/g)); Или тебе нужно именно такой массив Цитата:
|
danik.js,
Ну прост в xml-формате как раз такая соль, что пустые теги закрываются после перечисления атрибутов: <Inline/>. Вроде как гуд, но если хотелось бы сохранить структуру <Inline></Inline>, то работать придётся как с текстом, видимо? |
Цитата:
|
maternik, в xml главное теги закрывать и закрывать корректно. В твоем случае оба варианта корректны. Т.о. парсить можно без проблем... ;)
|
Цитата:
|
Я использую библиотеку x3dom для встраивания X3D-разметки на страницу html. Для подключения внешних файлов разметки используется тег <Inline>. Однако библиотека x3dom не понимает данный тег, если отсутствует парный ему, закрывающий </Inline>, и внешняя разметка не отображается на странице. ОК?
И да, я знаю, чем страдаю :cray: |
Цитата:
Если встраиваешь в XHTML - такой текст можно встроить. Если в HTML - нельзя. У тебя есть причины не использовать XHTML? В общем, ты все-таки страдаешь ) |
Часовой пояс GMT +3, время: 05:00. |