Как представить пространство и вкладку в теге 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
ПРОБЕЛ -
#x000A
LINE 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]",