多行上的 XML 拆分属性值

Posted

技术标签:

【中文标题】多行上的 XML 拆分属性值【英文标题】:XML split attribute value on multiple line 【发布时间】: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 规范中的某些内容。 相关:Are line breaks in XML attribute values allowed? 【参考方案1】:

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

【讨论】:

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

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

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

【讨论】:

不同的Q和A:多行字符串属性值,HTML

以上是关于多行上的 XML 拆分属性值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VS 代码拆分属性中阻止 Prettier 到多行?

知道当 UILabel 的多行属性打开时,它在哪里拆分字符串

使用带有 C# 的 XmlDocument 读取 XML 数据 - 读取属性数据并拆分结果

将“Section”中的一长行记录拆分为两行或多行

SQL Server XML 列上的 Where 子句过滤属性 AND 值

XSLT:基于属性拆分 xml 文件