2012-06-06 19 views
54

Próbowałem dodać nową linię/przerwę do kodu w XML i nie udało się.Dodawanie nowego wiersza/znacznika break w XML

próbowałem dotąd:

<br /> 
<br> 

 

Oto przykład kodu pracuję z. Dołączyłem "
", aby pokazać, gdzie znajduje się przerwa w kodzie.

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

Odpowiedz

29

Rozwiązanie to pytanie brzmi:

<?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> 

dodając <br /> wewnątrz w tym <![CDATA]]> pozwala linia do przerwy, tworząc nową linię!

+12

'
' to HTML, a nie XML! – Peter

+4

@Peter naprawdę? Przynajmniej zrób trochę badań, zanim zaczniesz krzyczeć rzeczy, które uważasz za błędne. Właśnie z tego powodu używa się ''. –

+12

Tak, '
' nie jest XML. Plakat nie określał, że chce otrzymywać HTML. Jak sugerują inne odpowiedzi, nowa linia w XML to '& # x13 '. Właśnie z tego powodu należy dodać sekcję '', ponieważ treść nie jest XML ... – Peter

3

Prawdopodobnie trzeba umieścić go w CDATA block zachować białych znaków

<?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> 
+1

Dał swoim przykładzie spróbować ale nadal nie szczęścia. –

69

nowej linii XML

XML

  1. powrót karetki: &#xD;
  2. przewodzie zasilającym: &#xA;

lub spróbuj jak @dj_segfault proponowanej (patrz jego odpowiedź) z CDATA;

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

Błąd, co by się stało, gdyby tekst zawierał sekwencję znaków ']]>'? – deed02392

+0

Tęskniłeś średnikiem na końcu –

+3

Przyszłe odniesienie do mnie: dla AS3 powyższe jest odpowiedzią, której szukasz ..! –

29

Nie trzeba niczego wyjątkowego: dodaje zawiera nową linię (dwa, faktycznie):

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

Pytanie brzmi, dlaczego nie jest to znak nowej linii przynoszą pożądanych efektów, a to pytanie o to, co faktycznie robi z odbiorcą XML. Na przykład, jeśli odbiorca tłumaczy go na HTML, a HTML jest wyświetlany w przeglądarce, to nowa linia zostanie przekonwertowana na spację przez przeglądarkę. Musisz nam coś powiedzieć na temat procesu przetwarzania.

1

Bez użycia CDATA, spróbuj

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

Uwaga podwójne i pojedyncze cudzysłowy.

Jest to szczególnie przydatne, jeśli nie tworzysz xml jako tekstu. <xsl:output method="text" />

7

Prawdopodobnie używasz systemu Windows, więc nowa linia to CR + LF (powrót karetki + podawanie wiersza). Więc rozwiązaniem byłoby:

<?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> 

Dla Linuksa istnieje tylko LF oraz Mac OS tylko CR.

Podano sposób Linuksa.

+0

Poprawnie Używałem okien, jednak powrót karetki nie działa dla mnie. Dostarczyłem rozwiązanie mojego konfliktu powyżej –

+1

Popraw mnie, jeśli jestem zły, ale Mac OS X używa LF, tak jak pozostałe systemy zgodne z Uniksem? – Peter

+0

@Peter Mac OS X używa LF, ale wersja 9 i wcześniej używane CR. –

1

Najprostszym sposobem, aby dać sobie przerwę linia jest wykonanie następujących czynności:
1> Dodaj następujące CSS - e{display:block}
2> Teraz gdziekolwiek chcesz dać podział wiersza, typ -

<e></e> 
+0

świetne !!!. Pracował. – Vani

0

Droga zrobić podział wiersza w XML jest użycie &#xA;

pracował dla mnie w Eclipse IDE, kiedy projektując mój układ XML & używał TextView.

0

po prostu naciśnij enter to zrobić przerwę

<![CDATA[this is 
my text.]]> 
1

Had sam problem gdy miałem do opracowania stałego formatu pola długość.

Zazwyczaj nie używamy separatora linii do plików binarnych , ale Z jakiegoś powodu nasz klient chciał dodać podział wiersza jako separator między rekordami. Określają one

< wartość record_delimiter = "\ n" />

ale to nie działa jak rekordy dostał dwa dodatkowe znaki:
< RECORD1> \ n < RECORD2> \ n .... a wkrótce.

Wykonał następujące zmiany i po prostu zadziałał.

< wartość record_delimiter = "\ N" wartość /> => < record_delimiter = "& #xA;" />

Po unmarshaling Java interpretuje jako nowego wiersza.

1

chciałem dodać moje rozwiązanie:

&lt; br/ &gt;

który jest w zasadzie taka sama, jak zasugerowano powyżej
w moim przypadku musiałem użyć &lt dla < i &gt dla> prostu oddanie <br /> nie praca.

+0

To działa! Dzięki –

-3
(Using system.IO) 

można po prostu użyć \n dla nowej linii i \t przed ciągiem wcięcia go.

Na przykład w c#:

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


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

To spowoduje wyjście: http://prntscr.com/96dfqc

+3

To jest przykład C#, a nie XML. –

5

To rozwiązanie pracował dla mnie:

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

Trzeba będzie tekst w dwóch liniach .

To działało na mnie przy użyciu metody XmlReader.Read.

1

ten można rozwiązać przez prosty atrybut 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> 
Powiązane problemy