“>” (БОЛЬШЕ U+003E - ЧЕМ ЗНАК) позволен в значении атрибута элемента HTML?

Необязательные параметры являются атрибутом параметра метода или делегата. Когда вы вызываете подпись (метод или делегат), у которой есть известный необязательный параметр во время компиляции, компилятор вставляет необязательное значение параметра в callsite.

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

Вместо этого вам нужно объявить пользовательский тип делегата с дополнительным параметром:

public delegate void MyDelegate(IEnumerable<string> param1, string param2, int param3 = 1);

При вызове этот делегат, вы сможете опустить третий параметр, независимо от объявления содержащегося в нем метода (ов).

8
задан Deduplicator 1 February 2015 в 16:25
поделиться

7 ответов

Да, это позволяется (Блок проверки допустимости W3C принимает его, только выдает предупреждение).

Незавершенный < и > также позволяются внутренние комментарии, таким образом, такой простой regexp можно дурачить.

Если BeautifulSoup не обрабатывает это, это могла бы быть ошибка или возможно сознательное проектное решение сделать это более эластичным пропавшим без вести заключительных кавычек в атрибутах.

9
ответ дан 5 December 2019 в 08:55
поделиться

Я полагаю, что это допустимо, и блок проверки допустимости W3C соглашается, но авторитетный источник для этой информации является стандартом ISO 8879:1986, который стоит ~150EUR/210USD. Независимо, не неправильно закодировать их, поэтому если в сомнении, закодировать. Кроме того, при использовании основанного на XML типа документа необходимо закодировать больше - чем входит в систему последовательность ]]>.

3
ответ дан 5 December 2019 в 08:55
поделиться

Литерал > законно везде в содержимом HTML, и в значениях атрибута и как текст в элементе.

3
ответ дан 5 December 2019 в 08:55
поделиться

После чтения следующего:

http://www.w3.org/International/questions/qa-escapes

похоже, что Escape объекта предлагаются везде (включая в атрибутах) для <> и и

2
ответ дан 5 December 2019 в 08:55
поделиться
yeah except /<tag[^>]*>.*?<\/tag>/

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

0
ответ дан 5 December 2019 в 08:55
поделиться

посмотрите, получаете ли Вы тот же результат с помощью &gt; вместо>

0
ответ дан 5 December 2019 в 08:55
поделиться

Если Вы настаиваете на том, чтобы использовать регулярные выражения (который подходит для основных строковых операций), пытаются использовать <tag((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)>.*?<\/tag>. Это должно соответствовать атрибутам отлично и поэтому разрешению Вам получить доступ к внутреннему содержанию (хотя необходимо поместить его в группу получения).

Можно также использовать Пакет Гибкости HTML для парсинга HTML, который я рекомендовал бы, если Вы собираетесь сделать большой парсинг. Поддержание больших регулярных выражений может легко стать головной болью, но в это время они являются также намного более эффективными, если Вы можете сделать так.

2
ответ дан 5 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: