Добавление нового тега строки / разрыва в XML [дубликат]


этот вопрос уже есть ответ здесь:

  • Как добавить строку (строки) в файл XML? 2 ответы

Я пытался добавить новую строку / разрыв в код в XML и не удалось.

но:

<br />
<br> 


вот пример кода, с которым я работаю. Я включил " " чтобы показать, где разрыв находится в коде.

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>Tootsie roll tiramisu macaroon wafer carrot cake.       
               
 Danish topping sugar plum tart bonbon caramels cake.
     </summary>
  </item>
14 59
xml

14 ответов:

новая строка XML

С XML

  1. возврат каретки:&#xD;
  2. строки:&#xA;

или попробуйте, как @ dj_segfault предложил (см. Его ответ) с CDATA;

 <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake.                       
            Danish topping sugar plum tart bonbon caramels cake.]]>

вам не нужно ничего необычного: следующее содержит новую строку (два, на самом деле):

<summary>Tootsie roll tiramisu macaroon wafer carrot cake.       
         Danish topping sugar plum tart bonbon caramels cake.
</summary>

вопрос в том, почему эта новая строка не имеет желаемого эффекта: и это вопрос о том, что получатель XML на самом деле делает с ним. Например, если получатель переводит его в HTML и HTML отображается в браузере, то новая строка будет преобразована в пробел браузером. Вы должны рассказать нам что-то об обработке трубопровод.

решение этого вопроса:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>
        <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake. <br />      
                 Danish topping sugar plum tart bonbon caramels cake.]]>
     </summary>
  </item>

добавить <br /> внутри the <![CDATA]]> это позволяет линии ломаться, тем самым создавая новую линию!

вы вероятно используете Windows, поэтому новая строка CR + LF (возврат каретки + перевод строки). Так что решение:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>Tootsie roll tiramisu macaroon wafer carrot cake.&#13;&#10;Danish topping sugar plum tart bonbon caramels cake.
     </summary>
  </item>

для Linux есть только LF и только для Mac OS CR.

в вопросе там показал путь Linux.

Это решение сработало для меня:

<summary>Tootsie roll tiramisu macaroon wafer carrot cake. &#xD;Danish topping sugar plum tart bonbon caramels cake.</summary>

вы будете иметь текст в две строки.

это сработало для меня с помощью XmlReader.Метод read.

вы, вероятно, нужно положить его в блок CDATA сохранять пробельные символы

<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="dummy.xsl"?>   
   <item>      
      <summary>
         <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake.                       
            Danish topping sugar plum tart bonbon caramels cake.]]>
      </summary>   
   </item> 

без использования CDATA, попробуйте

<xsl:value-of select="'&#xA;'" />

обратите внимание на двойные и одинарные кавычки.

это особенно полезно, если вы не создаете xml ака текст. <xsl:output method="text" />

самый простой способ дать разрыв строки-это сделать следующее:
1> добавьте следующее в CSS - e{display:block}
2> теперь везде, где вы хотите сделать разрыв строки, типа -

<e></e>

была такая же проблема, когда мне пришлось разработать формат поля фиксированной длины.

обычно мы не используем разделитель строк для двоичных файлов но по какой-то причине наш клиент хотел бы добавить разрыв строки в качестве разделителя между записями. Они установили

но это не сработало, так как записи получили два дополнительных символа:
\n \n.... и так далее.

сделал следующие изменения и просто работать.

= >

после unmarshaling Java интерпретирует как символ новой строки.

хотел добавить мое решение:

&lt; br/ &gt;

это примерно так же, как было предложено выше
В моем случае я должен был использовать &lt Для &gt для > Проще говоря <br /> не работает.

способ сделать разрыв строки в XML-это использовать &#xA;

Он работал для меня в Eclipse IDE, когда я разрабатывал свой XML-макет и использовал TextView.

Это можно решить простым атрибутом CSS:

XML: <label name="pageTac"> Hello how are you doing? Thank you I'm Good</label>

CSS

.pageText{
white-space:pre !important; // this wraps the xml text.}

HTML / XSL

<tr>
        <td class="pageText"><xsl:value-of select="$Dictionary/infolabels/label[@name='pageTac']" />
            </td></tr>

просто нажмите enter, чтобы сделать перерыв

<![CDATA[this is
my text.]]>
(Using system.IO)

вы можете просто использовать \n для новой строки и \t перед строкой, чтобы отступить его.

например c#:

public string theXML() {
    string xml = "";
    xml += "<Scene>\n";
    xml += "\t<Character>\n";


    xml += "\t</Character>\n";
    xml += "</Scene>\n";
    return xml;
}

это приведет к выходу: http://prntscr.com/96dfqc