用于进行文本布局的方法及装置、电子设备、存储介质转让专利

申请号 : CN202311227610.0

文献号 : CN116976286B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张世平黄钧

申请人 : 北京紫光芯能科技有限公司

摘要 :

本申请涉及计算机技术领域,公开一种用于进行文本布局的方法,包括:利用预设的文件解析工具对待处理文件进行解析,获得树形结构。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。这样,通过按照预设顺序对树形结构中的元素节点进行节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得树形结构中过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本能够更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。本申请还公开一种用于进行文本布局的装置及电子设备、存储介质。

权利要求 :

1.一种用于进行文本布局的方法,其特征在于,包括:

利用预设的文件解析工具对待处理文件进行解析,获得树形结构;树形结构由多个元素节点相互嵌套形成;元素节点用于表征待处理文件中的数据内容;

按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本;

节点布局操作包括:将元素节点确定为第一当前节点;对第一当前节点进行节点缩进;

确定第一当前节点是否包括节点属性;在确定第一当前节点包括节点属性的情况下,对第一当前节点进行属性缩进;确定第一当前节点是否存在子节点;在第一当前节点存在子节点的情况下,输出第二预设字符并输出预设的换行字符;遍历所有子节点,将子节点确定为第二当前节点,并对第二当前节点进行节点缩进;输出预设的换行字符,并结束输出;

对第一当前节点进行属性缩进,包括:获取第一当前节点对应的属性列表,并将属性列表中排序为第一位的节点属性确定为第一当前属性;属性列表中按照第二预设顺序排列有若干个节点属性;输出预设的空格字符,并输出第一当前属性;确定属性列表中在第一当前属性后是否还有其他节点属性;在确定属性列表中在第一当前属性后还有其他节点属性的情况下,将属性列表中排序在第一当前属性后的下一位节点属性确定为第二当前属性;对第二当前属性进行属性对齐操作,直到属性列表中在第二当前属性后没有其他节点属性;

属性对齐操作包括:确定当前行长度是否大于或等于预设的宽度阈值;当前行长度为在输出第二当前属性后,第二当前属性所处行的行长度;在当前行长度大于或等于预设的宽度阈值的情况下,对第二当前属性进行换行输出;并确定属性列表中在第二当前属性后是否还有其他节点属性;在确定属性列表中在第二当前属性后还有其他节点属性的情况下,将属性列表中排序在第二当前属性后的下一位节点属性确定为第二当前属性;

通过以下方式获取当前行长度:将第一当前节点的节点缩进值、第一当前节点的节点名称的字符长度和备选字符的字符长度进行相加,获得第一当前节点对应的属性缩进值;

获取第一当前节点已输出的节点属性的属性长度之和,将属性长度之和与已输出节点属性之间的空格个数相加,获得属性累计长度;将属性累计长度与属性缩进值进行相加,获得输出前行长度;将输出前行长度、当前属性的属性长度和预设数值进行相加,获得当前行长度。

2.根据权利要求1所述的方法,其特征在于,对第一当前节点进行节点缩进,包括:获取第一当前节点的深度;

将预设倍数的第一当前节点的深度确定为第一节点缩进值;

输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。

3.根据权利要求1所述的方法,其特征在于,对第二当前节点进行节点缩进,包括:获取第二当前节点的深度;

将预设倍数的第二当前节点的深度确定为第二节点缩进值;

输出第二节点缩进值,并输出第一预设字符串、第二当前节点的节点名称和第二预设字符。

4.根据权利要求1所述的方法,其特征在于,对第二当前属性进行换行输出,包括:输出预设的换行字符,并输出属性缩进值和第二当前属性。

5.根据权利要求1所述的方法,其特征在于,确定第一当前节点是否存在子节点后,还包括:在第一当前节点不存在子节点的情况下,确定第一当前节点是否包括节点值,获得第一确定结果;

根据第一确定结果输出预设的换行字符,并结束输出。

6.根据权利要求5所述的方法,其特征在于,根据第一确定结果输出预设的换行字符,并结束输出,包括:在第一确定结果为确定第一当前节点包括节点值的情况下,输出第二预设字符,并输出第一当前节点的节点值;输出第一预设字符串、第一当前节点的节点名称和第二预设字符;输出预设的换行字符,并结束输出;和/或,在第一确定结果为确定第一当前节点不包括节点值的情况下,输出第二预设字符串;

输出预设的换行字符,并结束输出。

7.一种用于进行文本布局的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至6任一项所述的用于进行文本布局的方法。

8.一种电子设备,其特征在于,包括如权利要求7所述的用于进行文本布局的装置。

9.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至6任一项所述的用于进行文本布局的方法。

说明书 :

用于进行文本布局的方法及装置、电子设备、存储介质

技术领域

[0001] 本申请涉及计算机技术领域,例如涉及一种用于进行文本布局的方法及装置、电子设备、存储介质。

背景技术

[0002] XML(Extensible Markup Language,可扩展标记语言)是一种用于描述数据的规范。XML经常被用作数据交换格式,XML格式的文本在计算机领域有丰富的应用场景,这种格式文件可以被计算机处理,也可以人工阅读和编辑。目前常用的XML格式的文本生成工具,往往只兼顾了计算机处理的需求,没有考虑通常情况下大多数用户的阅读习惯,使得生成的XML格式的文本对于用户的阅读并不友好。
[0003] 需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0004] 为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0005] 本公开实施例提供了一种用于进行文本布局的方法及装置、电子设备、存储介质,以能够提高生成的XML格式的文本对于用户的阅读友好度。
[0006] 在一些实施例中,用于进行文本布局的方法,包括:利用预设的文件解析工具对待处理文件进行解析,获得树形结构。树形结构由多个元素节点相互嵌套形成;元素节点用于表征待处理文件中的数据内容。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。节点布局操作包括:将元素节点确定为第一当前节点;对第一当前节点进行节点缩进;确定第一当前节点是否包括节点属性;在确定第一当前节点包括节点属性的情况下,对第一当前节点进行属性缩进;确定第一当前节点是否存在子节点;在第一当前节点存在子节点的情况下,输出第二预设字符并输出预设的换行字符;遍历所有子节点,将子节点确定为第二当前节点,并对第二当前节点进行节点缩进;输出预设的换行字符,并结束输出。
[0007] 在一些实施例中,对第一当前节点进行节点缩进,包括:获取第一当前节点的深度,将预设倍数的第一当前节点的深度确定为第一节点缩进值。输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。
[0008] 在一些实施例中,对第二当前节点进行节点缩进,包括:获取第二当前节点的深度,将预设倍数的第二当前节点的深度确定为第二节点缩进值。输出第二节点缩进值,并输出第一预设字符串、第二当前节点的节点名称和第二预设字符。
[0009] 在一些实施例中,对第一当前节点进行属性缩进,包括:获取第一当前节点对应的属性列表,并将属性列表中排序为第一位的节点属性确定为第一当前属性;属性列表中按照第二预设顺序排列有若干个节点属性。输出预设的空格字符,并输出第一当前属性。确定属性列表中在第一当前属性后是否还有其他节点属性。在确定属性列表中在第一当前属性后还有其他节点属性的情况下,将属性列表中排序在第一当前属性后的下一位节点属性确定为第二当前属性。对第二当前属性进行属性对齐操作,直到属性列表中在第二当前属性后没有其他节点属性;属性对齐操作包括:确定当前行长度是否大于或等于预设的宽度阈值;当前行长度为在输出第二当前属性后,第二当前属性所处行的行长度;在当前行长度大于或等于预设的宽度阈值的情况下,对第二当前属性进行换行输出;并确定属性列表中在第二当前属性后是否还有其他节点属性;在确定属性列表中在第二当前属性后还有其他节点属性的情况下,将属性列表中排序在第二当前属性后的下一位节点属性确定为第二当前属性。
[0010] 在一些实施例中,对第二当前属性进行换行输出,包括:输出预设的换行字符,并输出属性缩进值和第二当前属性。
[0011] 在一些实施例中,确定第一当前节点是否包括节点属性后,还包括:在第一当前节点不存在子节点的情况下,确定第一当前节点是否包括节点值,获得第一确定结果。根据第一确定结果输出预设的换行字符,并结束输出。
[0012] 在一些实施例中,根据第一确定结果输出预设的换行字符,并结束输出,包括:在第一确定结果为确定第一当前节点包括节点值的情况下,输出第二预设字符,并输出第一当前节点的节点值;输出第一预设字符串、第一当前节点的节点名称和第二预设字符;输出预设的换行字符,并结束输出。和/或,在第一确定结果为确定第一当前节点不包括节点值的情况下,输出第二预设字符串;输出预设的换行字符,并结束输出。
[0013] 在一些实施例中,所述用于进行文本布局的装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于进行文本布局的方法。
[0014] 在一些实施例中,所述电子设备包括上述的用于进行文本布局的装置。
[0015] 在一些实施例中,所述存储介质存储有程序指令,所述程序指令在运行时,执行上述的用于进行文本布局的方法。
[0016] 本公开实施例提供的用于进行文本布局的方法及装置、电子设备、存储介质,可以实现以下技术效果:通过利用预设的文件解析工具对待处理文件进行解析,获得树形结构。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。这样,通过按照预设顺序对树形结构中的当前节点进行节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0017] 以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。

附图说明

[0018] 一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
[0019] 图1是本公开实施例提供的第一个用于进行文本布局的方法的示意图;
[0020] 图2是本公开实施例提供的第二个用于进行文本布局的方法的示意图;
[0021] 图3是本公开实施例提供的一个用于进行属性缩进的方法的示意图;
[0022] 图4是本公开实施例提供的第三个用于进行文本布局的方法的示意图;
[0023] 图5是本公开实施例提供的一个用于获取当前行长度方法的示意图;
[0024] 图6是本公开实施例提供的一个用于进行文本布局的装置的结构示意图。

具体实施方式

[0025] 为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。
然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
[0026] 本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0027] 除非另有说明,术语“多个”表示两个或两个以上。
[0028] 本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
[0029] 术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
[0030] 术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
[0031] 本公开实施例中,树形结构由多个元素节点相互嵌套形成。树形结构的根元素节点为XML格式文本的顶级节点。在一些实施例中,元素节点中包括节点名称、节点值和节点属性。节点属性包括属性名称和属性值。属性名称为节点属性的名称,属性值为节点属性的值。其中,节点名称用于表征元素节点的名称,节点值用于表征元素节点的文本内容。节点属性用于表征节点的信息。节点中可以没有节点属性,节点中也可以包括1个或多个节点属性。
[0032] 结合图1所示,本公开实施例提供一种用于进行文本布局的方法,包括:
[0033] 步骤S101,电子设备利用预设的文件解析工具对待处理文件进行解析,获得树形结构。树形结构由多个元素节点相互嵌套形成;元素节点用于表征待处理文件中的数据内容。
[0034] 步骤S102,电子设备按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。节点布局操作包括:将元素节点确定为第一当前节点;对第一当前节点进行节点缩进;确定第一当前节点是否包括节点属性;在确定第一当前节点包括节点属性的情况下,对第一当前节点进行属性缩进;确定第一当前节点是否存在子节点;在第一当前节点存在子节点的情况下,输出第二预设字符并输出预设的换行字符;遍历所有子节点,将子节点确定为第二当前节点,并对第二当前节点进行节点缩进;输出预设的换行字符,并结束输出。
[0035] 采用本公开实施例提供的用于进行文本布局的方法,通过利用预设的文件解析工具对待处理文件进行解析,获得树形结构。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。这样,通过按照预设顺序对树形结构中的元素节点进行节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0036] 在一些实施例中,预设的换行字符为 。
[0037] 在一些实施例中,第一预设顺序为按照元素节点在树形结构中的深度从小到大的顺序,对元素节点进行节点布局操作。其中,树形结构的根元素节点的深度为0,根元素节点的子节点的深度为1,根元素节点的子节点的子节点的深度为2,依次类推。
[0038] 进一步的,电子设备确定第一当前节点是否包括节点属性后,还包括:电子设备在第一当前节点不存在子节点的情况下,确定第一当前节点是否包括节点值,获得第一确定结果。根据第一确定结果输出预设的换行字符,并结束输出。
[0039] 进一步的,电子设备根据第一确定结果输出预设的换行字符,并结束输出,包括:电子设备在第一确定结果为确定第一当前节点包括节点值的情况下,输出第二预设字符,并输出第一当前节点的节点值。输出第一预设字符串、第一当前节点的节点名称和第二预设字符。输出预设的换行字符,并结束输出。和/或,在第一确定结果为确定第一当前节点不包括节点值的情况下,输出第二预设字符串。输出预设的换行字符,并结束输出。其中,第二预设字符为>。
[0040] 可选地,电子设备确定第一当前节点是否包括节点属性后,还包括:电子设备在确定第一当前节点不包括节点属性的情况下,输出第二预设字符,并输出预设的换行字符。
[0041] 进一步的,电子设备对第一当前节点进行节点缩进,包括:电子设备获取第一当前节点的深度。将预设倍数的第一当前节点的深度确定为第一节点缩进值。输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。其中,预设倍数为2倍,第一预设字符为<。
[0042] 在一些实施例中,树形结构中根元素节点的深度为0,根元素节点的子节点的深度为1,根元素节点的子节点的子节点的深度为2,依次类推。
[0043] 在一些实施例中,节点缩进值用于表征在每行的起始位置输出的预设的空格字符的长度。其中,预设的空格字符为计算机中的空格字符。
[0044] 进一步的,子节点的节点缩进值大于其父节点的节点缩进值。在一些实施例中,子节点的节点缩进值比其父节点的节点缩进值多2个预设的空格字符长度。
[0045] 进一步的,电子设备对第二当前节点进行节点缩进,包括:电子设备获取第二当前节点的深度。将预设倍数的第二当前节点的深度确定为第二节点缩进值。输出第二节点缩进值,并输出第一预设字符串、第二当前节点的节点名称和第二预设字符。其中,第一预设字符串为
[0046] 在一些实施例中,输出节点缩进值就是输出对应个数的空格字符。在元素节点的深度为1的情况下,则元素节点的节点节点缩进值为2,输出节点缩进值2用于表征在当前行的起始位置输出2个预设的空格字符。其中,当前行为将要输出该元素节点的行。
[0047] 在一些实施例中,电子设备将树形结构中节点深度为0的元素节点确定为第一当前节点,获取第一当前节点的深度。将预设倍数的第一当前节点的深度确定为第一节点缩进值,输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。确定第一当前节点是否包括节点属性,在确定第一当前节点包括节点属性的情况下,对第一当前节点进行属性缩进。和/或,在确定第一当前节点不包括节点属性的情况下,输出第二预设字符,并输出预设的换行字符。确定第一当前节点是否存在子节点,在第一当前节点存在子节点的情况下,输出第二预设字符并输出预设的换行字符。遍历所有子节点,将子节点确定为第二当前节点,并对第二当前节点进行节点缩进。输出预设的换行字符,并结束输出。在第一当前节点不存在子节点的情况下,确定第一当前节点是否包括节点值。在第一当前节点包括节点值的情况下,输出第二预设字符,并输出第一当前节点的节点值。输出第一预设字符串、第一当前节点的节点名称和第二预设字符;输出预设的换行字符,并结束输出。和/或,在第一当前节点不包括节点值的情况下,输出第二预设字符串。输出预设的换行字符,并结束输出。
[0048] 结合图2所示,本公开实施例提供一种用于进行文本布局的方法,包括:
[0049] 步骤S201,电子设备利用预设的文件解析工具对待处理文件进行解析,获得树形结构。树形结构由多个元素节点相互嵌套形成;元素节点用于表征待处理文件中的数据内容。然后执行步骤S202。
[0050] 步骤S202,电子设备将树形结构中的根元素节点确定为第一当前节点。然后执行步骤S203。
[0051] 步骤S203,电子设备获取第一当前节点的深度。然后执行步骤S204。
[0052] 步骤S204,电子设备将预设倍数的第一当前节点的深度确定为第一节点缩进值。然后执行步骤S205。
[0053] 步骤S205,电子设备输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。然后执行步骤S206。
[0054] 步骤S206,电子设备确定第一当前节点是否包括节点属性。在确定第一当前节点包括节点属性的情况下,执行步骤S207;或,在确定第一当前节点不包括节点属性的情况下,执行步骤S208。
[0055] 步骤S207,电子设备对第一当前节点进行属性缩进。然后执行步骤S208。
[0056] 步骤S208,电子设备确定第一当前节点是否存在子节点,在第一当前节点存在子节点的情况下执行步骤S209;或,在第一当前节点不存在子节点的情况下执行步骤S213。
[0057] 步骤S209,电子设备输出第二预设字符并输出预设的换行字符。然后执行步骤S210。
[0058] 步骤S210,电子设备遍历所有子节点,将子节点确定为第二当前节点,获取第二当前节点的深度;将预设倍数的第二当前节点的深度确定为第二节点缩进值。然后执行步骤S211。
[0059] 步骤S211,电子设备输出第二节点缩进值,并输出第一预设字符串、第二当前节点的节点名称和第二预设字符。然后执行步骤S212。
[0060] 步骤S212,电子设备输出预设的换行字符,并结束输出。然后结束。
[0061] 步骤S213,电子设备确定第一当前节点是否包括节点值;在确定第一当前节点包括节点值的情况下,执行步骤S214;或,在确定第一当前节点不包括节点值的情况下,执行步骤S215。
[0062] 步骤S214,电子设备输出第二预设字符,并输出第一当前节点的节点值。然后执行步骤S212。
[0063] 步骤S215,电子设备输出第二预设字符串。然后执行步骤S212。
[0064] 采用本公开实施例提供的用于进行文本布局的方法,通过按照预设顺序对树形结构中的元素节点进行节点布局操作,能够对各元素节点的节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0065] 进一步的,电子设备对第一当前节点进行属性缩进,包括:电子设备获取第一当前节点对应的属性列表;属性列表中按照第二预设顺序排列有若干个节点属性。输出预设的空格字符,并输出第一当前属性;第一当前属性为属性列表中排序为第一位的节点属性。确定属性列表中在第一当前属性后是否还有其他节点属性。在确定属性列表中在第一当前属性后还有其他节点属性的情况下,将属性列表中排序在第一当前属性后的下一位节点属性确定为第二当前属性。对第二当前属性进行属性对齐操作,直到属性列表中在第二当前属性后没有其他节点属性。
[0066] 属性对齐操作包括:确定当前行长度是否大于或等于预设的宽度阈值;当前行长度为在输出第二当前属性后,第二当前属性所处行的行长度;在当前行长度大于或等于预设的宽度阈值的情况下,对第二当前属性进行换行输出;并确定属性列表中在第二当前属性后是否还有其他节点属性;在确定属性列表中在第二当前属性后还有其他节点属性的情况下,将属性列表中排序在第二当前属性后的下一位节点属性确定为第二当前属性。
[0067] 在一些实施例中,在第一当前节点中的属性列表中包括节点属性的情况下,则将属性列表中排序第一位的节点属性跟第一当前节点的节点名称放在同一行。在排序第一位的节点属性后还有其他节点属性的情况下,只要输出其他节点属性后当前行长度小于预设的宽度阈值,则仍然放在当前行。否则就进行换行输出。换行后的每个节点属性单独占一行,且换行后的每个节点属性,都与排序第一为的节点属性的属性缩进值相同。这样能够保持节点属性的纵向对齐。
[0068] 在一些实施例中,在节点属性与第一当前节点的节点名称放在同一行的情况下,在该节点属性前增加2个预设的空格字符。这样能够便于用户进行阅读区分。
[0069] 在一些实施例中,预设的换行字符为 ,预设的宽度阈值为80个字符。
[0070] 在一些实施例中,预设的换行字符为计算机中的回车换行字符,XML格式的文本中每行的内容通过换行字符来区分。
[0071] 进一步的,电子设备对第二当前属性进行换行输出,包括:电子设备输出预设的换行字符,并输出属性缩进值和第二当前属性。
[0072] 进一步的,电子设备通过以下方式获取当前行长度:获取第一当前节点对应的属性缩进值,根据属性缩进值获取第二当前属性对应的当前行长度。
[0073] 进一步的,电子设备获取第一当前节点对应的属性缩进值,包括:电子设备将第一当前节点的节点缩进值、第一当前节点的节点名称的字符长度和备选字符的字符长度进行相加,获得属性缩进值。其中,备选字符包括第一预设字符和预设的空格字符。
[0074] 进一步的,电子设备根据属性缩进值获取第二当前属性对应的当前行长度,包括:电子设备获取属性累计长度。将属性累计长度与属性缩进值进行相加,获得输出前行长度。
输出前行长度用于表征输出第二当前属性前的行长度。根据输出前行长度和当前属性的属性长度获取当前行长度。
[0075] 进一步的,电子设备获取属性累计长度,包括:电子设备获取第一当前节点已输出的节点属性的属性长度之和,将属性长度之和与已输出节点属性之间的空格个数相加,获得属性累计长度。
[0076] 进一步的,电子设备通过以下方式获取已输出节点属性之间的空格个数:电子设备将已输出的节点属性的个数减1,获得已输出节点属性之间的空格个数。
[0077] 进一步的,电子设备根据输出前行长度和当前属性的属性长度获取当前行长度,包括:电子设备将输出前行长度、当前属性的属性长度和预设数值进行相加,获得当前行长度。其中,预设数值为1个空格字符的长度。
[0078] 在一些实施例中,输出当前属性包括输出当前属性的属性名称和属性值。当前属性的属性名称和属性值按照预设格式生成。预设格式为name="value"。在一些实施例中,属性长度为当前属性对应的文本的字符长度。
[0079] 结合图3所示,本公开实施例提供一种用于进行属性缩进的方法,包括:
[0080] 步骤S301,电子设备获取第一当前节点对应的属性列表,并将属性列表中排序为第一位的节点属性确定为第一当前属性。属性列表中按照第二预设顺序排列有若干个节点属性。然后执行步骤S302。
[0081] 步骤S302,电子设备输出预设的空格字符,并输出第一当前属性。然后执行步骤S303。
[0082] 步骤S303,电子设备确定属性列表中在第一当前属性后是否还有其他节点属性;在确定属性列表中在第一当前属性后还有其他节点属性的情况下,执行步骤S304;或,在确定属性列表中在第一当前属性后没有其他节点属性的情况下,执行步骤S310。
[0083] 步骤S304,电子设备将属性列表中排序在第一当前属性后的下一位节点属性确定为第二当前属性。然后执行步骤S305。
[0084] 步骤S305,电子设备确定当前行长度是否大于或等于预设的宽度阈值;当前行长度为在输出第二当前属性后,第二当前属性所处行的行长度。在确定当前行长度大于或等于预设的宽度阈值的情况下,执行步骤S306;或,在当前行长度小于预设的宽度阈值的情况下,执行步骤S311。
[0085] 步骤S306,电子设备输出预设的换行字符。然后执行步骤S307。
[0086] 步骤S307,电子设备输出属性缩进值和第二当前属性。然后执行步骤S308。
[0087] 步骤S308,电子设备确定属性列表中在第二当前属性后是否还有其他节点属性;在确定属性列表中在第二当前属性后还有其他节点属性的情况下,执行步骤S309;或,在确定属性列表中在第二当前属性后没有其他节点属性的情况下,执行步骤S310。
[0088] 步骤S309,电子设备将属性列表中排序在第二当前属性后的下一位节点属性确定为第二当前属性。然后执行步骤S306。
[0089] 步骤S310,电子设备确定属性缩进结束。然后结束。
[0090] 步骤S311,电子设备将第二当前属性确定为第一当前属性。然后执行步骤S302。
[0091] 采用本公开实施例提供的用于进行属性缩进的方法,通过对第一当前节点的节点属性进行属性缩进,能够将超过预设的宽度阈值的属性进行多行处理,实现了节点属性的换行输出。并且在节点属性换行后,在节点属性列表中还存在其他节点属性的情况下,对其他节点属性都进行换行输出,能够保证节点属性的纵向对齐,便于用户阅读。能够使得生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0092] 结合图4所示,本公开实施例提供一种用于进行文本布局的方法,包括:
[0093] 步骤S401,电子设备利用预设的文件解析工具对待处理文件进行解析,获得树形结构。树形结构由多个元素节点相互嵌套形成;元素节点用于表征待处理文件中的数据内容。然后执行步骤S402。
[0094] 步骤S402,电子设备将树形结构中的根元素节点确定为第一当前节点。然后执行步骤S403。
[0095] 步骤S403,电子设备获取第一当前节点的第一节点缩进值。然后执行步骤S404。
[0096] 步骤S404,电子设备输出第一节点缩进值,并输出第一预设字符和第一当前节点的节点名称。然后执行步骤S405。
[0097] 步骤S405,电子设备确定第一当前节点是否包括节点属性。在确定第一当前节点包括节点属性的情况下,执行步骤S406;或,在确定第一当前节点不包括节点属性的情况下,执行步骤S407。
[0098] 步骤S406,电子设备对第一当前节点进行属性缩进。然后执行步骤S407。
[0099] 步骤S407,电子设备在第一当前节点不存在子节点的情况下确定第一当前节点是否包括节点值;在确定第一当前节点包括节点值的情况下,执行步骤S408;或,在确定第一当前节点不包括节点值的情况下,执行步骤S410。
[0100] 步骤S408,电子设备输出第一节点缩进值,并输出第一预设字符串、第一当前节点的节点名称和第二预设字符。然后执行步骤S409。
[0101] 步骤S409,电子设备输出预设的换行字符,并结束输出。然后结束。
[0102] 步骤S410,电子设备输出第二预设字符串。然后执行步骤S409。
[0103] 采用本公开实施例提供的用于进行文本布局的方法,通过按照预设顺序对树形结构中的元素节点进行节点布局操作,能够对各元素节点的节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示。同时,在元素节点中包括节点值的情况下就输出对应的节点值,在不包括节点值的情况下就直接结束输出。这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0104] 结合图5所示,本公开实施例提供一种用于获取当前行长度的方法,包括:
[0105] 步骤S501,电子设备将第一当前节点的节点缩进值、第一当前节点的节点名称的字符长度和备选字符的字符长度进行相加,获得属性缩进值。其中,备选字符包括第一预设字符和预设的空格字符。第一预设字符为<。
[0106] 步骤S502,电子设备获取第一当前节点已输出的节点属性的属性长度之和。
[0107] 步骤S503,电子设备将属性长度之和与已输出节点属性之间的空格个数相加,获得属性累计长度。
[0108] 步骤S504,电子设备将属性累计长度与属性缩进值进行相加,获得输出前行长度。
[0109] 步骤S505,电子设备电子设备将输出前行长度、当前属性的属性长度和预设数值进行相加,获得当前行长度。其中,预设数值为1个空格字符的长度。
[0110] 采用本公开实施例提供的用于获取当前行长度的方法,通过在节点缩进值的基础上加上节点名称的字符长度和备选字符的字符长度,能够使得节点属性的缩进比第一当前节点的缩进更长,从而便于用户阅读。能够提高生成的XML格式的文本对于用户的阅读友好度。
[0111] 结合图6所示,本公开实施例提供一种用于进行文本布局的装置600,该装置包括处理器(processor)604和存储器(memory)601。可选地,该电子设备还可以包括通信接口(Communication Interface)602和总线603。其中,处理器604、通信接口602、存储器601可以通过总线603完成相互间的通信。通信接口602可以用于信息传输。处理器604可以调用存储器601中的逻辑指令,以执行上述实施例的用于进行文本布局的方法。
[0112] 采用本公开实施例提供的用于进行文本布局的装置,通过利用预设的文件解析工具对待处理文件进行解析,获得树形结构。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。这样,通过按照预设顺序对树形结构中的元素节点进行节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度。
[0113] 此外,上述的存储器601中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0114] 存储器601作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器604通过运行存储在存储器601中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于进行文本布局的方法。
[0115] 存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器。
[0116] 可选地,本公开实施例提供一种电子设备,包括上述用于进行文本布局的装置。
[0117] 采用本公开实施例提供的电子设备,通过利用预设的文件解析工具对待处理文件进行解析,获得树形结构。按照第一预设顺序对树形结构中的元素节点进行节点布局操作,以生成XML格式的文本。这样,通过按照预设顺序对树形结构中的元素节点进行节点缩进和属性缩进,实现了对树形结构中的数据内容进行多行处理和对齐,使得过长的数据内容能够分多行对齐进行显示,这样生成的XML格式的文本更符合用户的阅读习惯。从而提高了生成的XML格式的文本对于用户的阅读友好度
[0118] 可选地,电子设备包括计算机等。
[0119] 本公开实施例提供了一种存储介质,存储有程序指令,程序指令在运行时,执行上述用于进行文本布局的方法。
[0120] 本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于进行文本布局的方法。
[0121] 上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
[0122] 本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
[0123] 以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
[0124] 本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0125] 本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0126] 附图中的流程图和框图显示了根据本公开实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。