Браузер удаляет символы новой строки в файле xml [duplicate]

fs не может использоваться на клиенте из-за того, что браузеры ограничивают некоторый код javascript.

Если ваш код запускается как на сервере, так и на клиенте, вы можете использовать:

if (Meteor.isClient) return;

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

12
задан kjhughes 19 February 2016 в 13:45
поделиться

2 ответа

A newline (aka разрыв строки или end-of-line , EOL ) является специальным символом или символьная последовательность, которая знаменует конец строки текста. Точные коды используются в разных операционных системах:

LF:    Unix
CR:    Mac OS up to version 9
CR+LF: Windows, DOS

Вы можете использовать 
 для линии (LF) или 
 для возврата каретки (CR), а синтаксический анализатор XML заменит его соответствующий символ при передаче анализируемого текста в приложение. Они могут быть добавлены вручную, как показано в вашем примере, но особенно удобны при необходимости добавлять новые строки программно в строку:

  • Общие языки программирования: LF: "
" CR: "
"
  • XSLT: LF: <xsl:text>&#xA;</xsl:text> CR: <xsl:text>&#xD;</xsl:text>

Или, если вы хотите увидеть его в XML сразу же просто произведите это буквально:

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        Sample
        Text 123
    </data>
</item>

Новая строка все еще не отображается?

Имейте в виду, что, как приложение интерпретирует текст, включая новые строки, зависит от него. Если вы обнаружите, что ваши новые строки игнорируются, возможно, приложение автоматически запускает текст, разделенный символами новой строки.

HTML-браузеры, например, будут игнорировать символы новой строки (и нормализуют пространство в тексте, пространства консолидируются). Чтобы разбить строки в HTML,

  • используйте <br/>; или
  • в элементе, таком как div или p, который по умолчанию вызывает разрыв строки после вложенного текста или в элемент, такой как pre, который по умолчанию обычно сохраняет пробелы и разрывы строк; или
  • используют стили CSS, такие как white-space для управления рендерингом новой строки.

Приложение XML не работает?

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

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample
                 Text 123]]>
    </data>
</item>

или, если разметка HTML распознается ниже по течению:

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample <br/>
                 Text 123]]>
    </data>
</item>

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

Нижняя строка

A newline (ака разрыв строки или end-of-line , EOL ) можно добавить так же, как любой символ в XML, но помните о

  • , отличающемся соглашениями OS
  • отличается семантикой XML-приложений
15
ответ дан kjhughes 20 August 2018 в 22:56
поделиться
  • 1
    Я тоже попробовал, но текст на моей веб-странице все еще находится в одной строке – Christian 19 February 2016 в 13:35
  • 2
    Ответ обновлен. См. Новая строка еще не отображается? – kjhughes 22 February 2016 в 15:07
  • 3
    спасибо за помощь! – Christian 29 February 2016 в 14:07

См. https://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.newlineonattributes (v = vs.110) .aspx

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
-2
ответ дан charles922 20 August 2018 в 22:56
поделиться
Другие вопросы по тегам:

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