Как представить пространство и вкладку в теге XML. Есть ли какие-либо специальные символы для их представления.
Представление пространства и вкладки в теге XML
Ответ 1
Я думаю, вы могли бы использовать фактическое пространство или вкладку непосредственно в документе XML, но если вы ищете специальные символы для их представления, чтобы текстовые процессоры не могли их испортить, то это:
space =  
tab = 	
Ответ 2
Работайте для меня
\n = 

\r = 
\t = 	
space =  
Вот пример того, как их использовать в XML
<KeyWord name="hello	" />
Ответ 3
У вас не может быть пробелов и вкладок в теге (т.е. имя) элементов XML, см. спецификации: http://www.w3.org/TR/REC-xml/#NT-STag. Помимо буквенно-цифровых символов, имя двоеточия, подчеркивание, тире и точка допускаются в имени, а первая буква не может быть тире или точкой. Определенные символы Юникода также разрешены без фактической двойной проверки, я бы сказал, что это международные письма.
Ответ 4
Новый расширенный ответ на старый, часто задаваемый вопрос...
Пробелы в именах компонентов XML
Резюме: Пробелы символы не допускаются в именах XML элементов или атрибутов.
Вот основные кодовые точки Unicode, связанные с пробелами:
-
#x0009ХАРАКТЕРОВ -
#x0020ПРОБЕЛ -
#x000ALINE FEED (LF) -
#x000DВОЗВРАТ#x000D(CR) -
#x00A0 -
[#x2002-#x200A]EN SPACE через ПРОСТРАНСТВО ВОЛОС -
#x205FСРЕДНЕГО МАТЕМАТИЧЕСКОГО ПРОСТРАНСТВА -
#x3000ИДЕОГРАФИЧЕСКОЕ ПРОСТРАНСТВО
Ни одна из этих кодовых точек не разрешена WNC XML BNF для имен XML:
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] Name ::= NameStartChar (NameChar)*
Пробелы в содержимом XML (не имена компонентов)
Резюме: Пробелы символы, конечно, допускается по содержанию XML.
Все вышеперечисленные пробельные кодовые точки разрешены в контенте XML WNC XML BNF для Char:
Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
Кодовые точки Unicode могут быть вставлены как ссылки на символы. Оба десятичные &# десятичные ; и шестнадцатеричный &#x hex ; формы поддерживаются.
- Шестнадцатеричное десятичное имя Unicode
-
	или	CHARACTER TABULATION -

или LINE FEED (LF) -

или Возврат каретки (CR) -
 или ПРОСТРАНСТВО -
 или ПРОСТРАНСТВЕННОЕ ПРОСТРАНСТВО
Ответ 5
Если вы говорите о проблеме, в которой отдельные и непрозрачные пробельные символы удаляются конкретно из значений атрибутов, тогда да, кодируя их как символьные ссылки, такие как & # 9; исправит его.
Ответ 6
For me, to make it work я need to encode hex value of space within CDATA xml element, so that post parsing it adds up just as in the htm webgae & when viewed in browser just displays a space!. ( all above ideas & answers are useful )
<my-xml-element><![CDATA[ ]]></my-xml-element>
Ответ 7
У меня была такая же проблема, и ни один из вышеперечисленных ответов не решил проблему, поэтому я попробовал что-то очень прямолинейное: я просто положил в свой strings.xml \n\t
Полная строка выглядит так: <string name="premium_features_listing_3">- Automatische Aktualisierung der\n\tDatenbank</string>
Результаты в:
-
Automatische Aktualisierung der
Datenbank
(без дополнительной строки между ними)
Может быть, это поможет другим. С уважением
Ответ 8
Недопустимые символы имени тега XML можно кодировать с помощью Unicode UCS-2. Это работает очень хорошо. Я использую его для создания XML, который превращается в json (JPath слаб по сравнению с XPath). Обратите внимание на обработку пробелов, (,) символов. Кодовая диаграмма Unicode UCS-2: http://www.columbia.edu/kermit/ucs2.html
tag.Name = tag.Name.Replace(" ", "_x0020_");
tag.Name = tag.Name.Replace("(", "_x0028_");
tag.Name = tag.Name.Replace(")", "_x0029_");
XML:
<Internal_x0020_Chargeback_x0020_ID>{CHARGEBACKCODE}</Internal_x0020_Chargeback_x0020_ID>
<Bill_x0020_To>{CHARGEBACKCODE}</Bill_x0020_To>
<Operator_x0020_or_x0020_Directly_x0020_Responsible_x0020_Individual_x0020__x0028_DRI_x0029_>[email protected]</Operator_x0020_or_x0020_Directly_x0020_Responsible_x0020_Individual_x0020__x0028_DRI_x0029_>
преобразован в json через json.net:
"Internal Chargeback ID": "{CHARGEBACKCODE}",
"Bill To": "{CHARGEBACKCODE}",
"Operator or Directly Responsible Individual (DRI)": "[email protected]",