2012-07-09 13 views
9

Tengo datos XML que contienen un valor de atributo largo. El valor no contiene caracteres de espacios en blanco. Quiero formatear el XML para la legibilidad dividiendo el texto XML para que la línea no exceda un número máximo de columnas.
¿Hay alguna forma de lograr esto? ¿Hay algún carácter de interrupción que pueda poner en cada extremo de la línea para que el analizador XML no lo considere como un espacio en blanco (como el carácter de subrayado en Visual Basic)?Valor de atributo de división XML en varias líneas

Por ejemplo:

<element attribute="this_is_a_very_long_text_attribute_value_that_I_want_to_split_on multiple_line_for_readability"/> 

quiero tener algo como:

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

te das cuenta de que los dos atributos son valores diferentes si quieres coincidir con ellos, y que tal vez si tienes un valor tan largo como ese sería mejor en un elemento de texto interno sin guiones bajos? No hay ningún personaje que pueda usar (XML correctamente nunca dividirá un atributo ya que lo rompe). Más allá de eso, sí, es posible dependiendo del idioma en que esté procesando el archivo en – Woody

+0

El valor de mi atributo es, de hecho, una lista de valores más pequeños separados por punto y coma. En este caso, parece más apropiado usar elementos secundarios. Lo uso para manejar los parámetros de configuración en forma de pares clave/valor, entre los que algunos tienen la forma de una lista de cadenas. Por lo tanto, no es posible en mi caso utilizar un elemento de texto interno sin realizar cambios importantes en el formato del archivo. Gracias por su respuesta de todos modos, solo quería asegurarme de no perder algo de la especificación XML. –

+0

Relacionado: [¿Se permiten los saltos de línea en los valores de atributo XML?] (Https://stackoverflow.com/q/449627/3357935) –

Respuesta

3

no existe ninguna disposición en XML sí por carácter de avance de línea en Attribute Values
sin embargo, esto se puede hacer dependiendo de el IDE que está utilizando para escribir
es decir. si está utilizando Visual Studio existe una disposición para romper las líneas y es manejado por el propio IDE
pero si usted está utilizando algún editor de texto bajo nivel como la libreta esto no puede hacerse
probablemente debería comprobar en la documentación de su XML editor

+1

¿De verdad? [Esta respuesta] (http://stackoverflow.com/a/449647/33080) dice lo contrario; se supone que las nuevas líneas en los valores de los atributos deben ser aceptadas por un analizador XML compatible. –

+1

si va a leer la pregunta de este tipo no qué obtener líneas múltiples tiene una línea larga que quiere leer en línea múltiple –

+0

Si lee la siguiente respuesta en la respuesta anterior, se trata de la normalización de los atributos. Las nuevas líneas típicamente se convertirán en espacios. \ n no es lo mismo que – Dorrin

0

Bueno, hay una manera: En resumen, solo use las pestañas en lugar de espacio. Para obtener más información, consulte esta respuesta. https://stackoverflow.com/a/38880984/3135511

Hmm bien IDE como Chrome Developer Tool o Visual Studio pueden atraparlo y limitarlo, pero algún editor común y corriente lo hará y el html/xml lo manejará.

Cuestiones relacionadas