【问题标题】:XML split attribute value on multiple line多行上的 XML 拆分属性值
【发布时间】:2012-07-08 17:45:19
【问题描述】:

我有一个包含长属性值的 XML 数据。该值不包含空格字符。我想通过拆分 XML 文本来格式化 XML 以提高可读性,以使该行不超过最大列数。
有没有办法做到这一点?是否可以在行尾放置任何中断字符,以便 XML 解析器不会将其视为空格(如 Visual Basic 中的下划线字符)?

例如:

<element attribute="this_is_a_very_long_text_attribute_value_that_I_want_to_split_on multiple_line_for_readability"/>

我想要类似的东西:

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

【问题讨论】:

  • 你意识到如果你想匹配这两个属性是不同的值,也许如果你有一个像这样的长值,那么在没有下划线的元素内部文本中会更好?没有可以使用的字符(XML 永远不会拆分属性,因为它会破坏它)。除此之外,是的,这取决于您处理文件的语言
  • 我的属性值实际上是由分号分隔的较小值的列表。在这种情况下,使用子元素似乎更合适。我用它来处理键/值对形式的配置参数,其中一些具有字符串列表的形式。因此,在我的情况下,如果不对文件格式进行重要更改,就不可能使用元素内部文本。无论如何,感谢您的回答,我只是想确保我没有遗漏 XML 规范中的某些内容。

标签: xml indentation


【解决方案1】:

XML 本身没有为Attribute Values 中的换行符提供任何规定
但是,这可以根据您使用它编写的 IDE 来完成
IE。如果您使用的是 Visual Studio,则可以设置换行并由 IDE 本身处理
但如果您使用的是记事本等低级文本编辑器,则无法完成
您可能应该检查您的 XML 编辑器的文档

【讨论】:

  • 真的吗? This answer 另有说明;属性值中的换行符应该被兼容的 XML 解析器接受。
  • 如果你会读到这个问题,这个人不会得到多行,他有一条很长的行,他想在多行中阅读
  • 如果您阅读上述答案中的下一个响应,它会讨论属性的规范化。新行通常会转换为空格。 \n 与 不同
【解决方案2】:

嗯,有一种方法: 简而言之,只需使用制表符而不是空格。 有关更多信息,请查看此答案。 https://stackoverflow.com/a/38880984/3135511

嗯,像 Chrome 开发者工具或 Visual Studio 这样的 IDE 可能会困住并限制你这样做,但一些普通的编辑器会完成这件事,而 html/xml 会处理它。

【讨论】:

  • 不同的Q和A:多行字符串属性值,HTML
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多