2012-07-09 20 views
9

Mam dane XML, które zawierają długą wartość atrybutu. Wartość nie zawiera białych znaków. Chcę sformatować kod XML pod kątem czytelności, dzieląc tekst XML tak, aby linia nie przekraczała maksymalnej liczby kolumn.
Czy jest jakiś sposób na osiągnięcie tego? Czy jest jakaś przerywana postać, którą mogę umieścić na każdym końcu linii, aby analizator składni XML nie traktował go jako białej spacji (jak znak podkreślenia w visual basic)?Wartość atrybutu podziału XML na wielu liniach

Na przykład:

<element attribute="this_is_a_very_long_text_attribute_value_that_I_want_to_split_on multiple_line_for_readability"/> 

chcę mieć coś takiego:

<element attribute="this_is_a_very_long 
_text_attribute_value_that_I_want_to_split 
_on multiple_line_for_readability"/> 
+0

Zdajesz sobie sprawę, że te dwa atrybuty są różnymi wartościami, jeśli chcesz dopasować je do nich, i że być może, jeśli masz taką wartość, byłoby lepiej w wewnętrznym tekście elementu bez podkreśleń? Nie ma postaci, której możesz użyć (XML słusznie nigdy nie podzieli atrybutu, ponieważ go zepsuje). Poza tym, tak, jest to możliwe w zależności od języka, w jakim przetwarzasz plik w – Woody

+0

. Moja wartość atrybutu jest w rzeczywistości listą mniejszych wartości oddzielonych średnikami. W takim przypadku bardziej odpowiednie wydaje się stosowanie podelementów. Używam tego do obsługi parametrów konfiguracyjnych w postaci par klucz/wartość, wśród których niektóre mają postać listy łańcuchów. W moim przypadku nie jest możliwe użycie wewnętrznego tekstu elementu bez dokonywania ważnych zmian w formacie pliku. Dziękuję za odpowiedź, chciałem się upewnić, że niczego nie przeoczyłem ze specyfikacji XML. –

+0

Powiązane: [Czy dozwolone są podziały linii w wartościach atrybutów XML?] (Https://stackoverflow.com/q/449627/3357935) –

Odpowiedz

3

nie ma przepisu w samej XML do znaku nowego wiersza w Attribute Values
jednak można to zrobić w zależności od IDE, którego używasz do pisania
tj. jeśli używasz programu Visual Studio, istnieje przepis na łamanie linii i jest obsługiwany przez IDE sam w sobie
, ale jeśli używasz edytora tekstu niskiego poziomu, takiego jak Notatnik, nie można tego zrobić
powinieneś sprawdzić dokumentację swojego XML edytor

+1

Naprawdę? [Ta odpowiedź] (http://stackoverflow.com/a/449647/33080) mówi inaczej; znaki nowej linii w wartościach atrybutów powinny być akceptowane przez zgodny analizator składni XML. –

+1

, jeśli przeczytasz pytanie, że ten facet nie dostaje tego, co ma uzyskać multi-line, ma długą linię, którą chce przeczytać w wielu wierszach –

+0

Jeśli czytasz następną odpowiedź w powyższej odpowiedzi, mówi ona o normalizacji atrybutów. Nowe linie będą zwykle konwertowane na spacje. \ n to nie to samo co – Dorrin

0

Cóż, jest sposób: W skrócie wystarczy użyć tabulatora zamiast spacji. Aby uzyskać więcej informacji, spójrz na tę odpowiedź. https://stackoverflow.com/a/38880984/3135511

Hmm dobrze IDE, takie jak Chrome Developer Tool lub Visual Studio, może wpaść w pułapkę i ograniczyć to, ale jakiś zwykły edytor wykona to zadanie, a html/xml sobie z tym poradzi.

Powiązane problemy