Какие символы Недопустимы (если не закодировано) в атрибуте XML?

В Python вы можете использовать понимание списка , подобное Ruby select:

custom_fields = data["testcases"]["testcase"]["custom-fields"]["custom-field"]
filtered = [f for f in custom_fields if f["@id"] == "caseimportance"]

Python также имеет фильтр, который более непосредственно сопоставим с выбором Ruby:

Python 2:

filtered = filter(lambda f: (f["@id"] == "caseimportance"), custom_fields)

Python 3:

filtered = list(filter(lambda f: (f["@id"] == "caseimportance"), custom_fields))

Однако понимание списка часто считается более Pythonic.

47
задан Euro Micelli 15 May 2009 в 02:00
поделиться

3 ответа

Согласно (2) текущей рекомендации , в частности, относительно символьных данных и разметки , это (1) амперсанд (& ), левая угловая скобка (<), правая угловая скобка (>), а также одинарные кавычки (') и двойные кавычки (").

5
ответ дан 26 November 2019 в 19:52
поделиться

См. 2.2 Символы в «Extensible Markup Language (XML) 1.0 (Третье издание)» .

Обратите внимание, что, по крайней мере, с .NET, если вы используете XML API для работы с XML, вам не придется об этом беспокоиться. Это'

1
ответ дан 26 November 2019 в 19:52
поделиться

Вот определение того, что разрешено в значении атрибута .

'"' ([^<&"] | Reference)* '"'  |  "'" ([^<&'] | Reference)* "'" 

Итак, вы не можете иметь:

  • тот же символ, который открывает / закрывает значение атрибута ( либо ', либо «)
  • голый амперсанд ( & должен быть & amp; )
  • левая угловая скобка ( < должно быть & lt; )

Вы также не должны использовать какие-либо символы , которые прямо запрещены нигде в XML-документ (например, каналы форм и т. Д.).

52
ответ дан 26 November 2019 в 19:52
поделиться
Другие вопросы по тегам:

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