Подтвердить что ты не робот

Представление пространства и вкладки в теге XML

Как представить пространство и вкладку в теге XML. Есть ли какие-либо специальные символы для их представления.

4b9b3361

Ответ 1

Я думаю, вы могли бы использовать фактическое пространство или вкладку непосредственно в документе XML, но если вы ищете специальные символы для их представления, чтобы текстовые процессоры не могли их испортить, то это:

space =  
tab   = 	

Ответ 2

Работайте для меня

\n = 

\r = 
\t = 	
space =  

Вот пример того, как их использовать в XML

<KeyWord name="hello&#x9;" />

Ответ 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 ; формы поддерживаются.

Ответ 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[&#x20;]]></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]",