|
|
1
29
很抱歉,但答案比“不,你不能”或“你为什么一开始就需要这样做?”更微妙。
-Xalan-C:如果你按字面意思插入结果树标签(例如。
是 属性顺序的情况 做 回归测试就是一个明显的例子。 在这些情况下,保持属性顺序非常有帮助。
|
|
|
2
24
如果一个软件要求XML元素上的属性按特定顺序出现,那么该软件不是在处理XML,而是在处理表面上看起来像XML的文本。它需要被修复。 如果无法修复,并且必须生成符合其要求的文件,则无法可靠地使用标准XML工具生成这些文件。例如,您可以尝试(如您所建议的)使用XSLT按定义的顺序生成属性,例如:
结果发现XSLT处理器发出以下命令:
因为处理器使用的DOM按标签名的字母顺序排列属性。(这是XMLDOM中常见但不普遍的行为。)
|
|
|
3
8
|
|
|
4
7
我们应该强烈反对任何编写不按照标准处理XML的代码的人。我明白,在这个经济时代,人们不愿意说“不”来冒犯客户和商业伙伴。但在这种情况下,我认为这是值得的。如果我们必须为每个业务伙伴手工制作XML,我们的财务状况会糟糕得多。 因此,不要“启用”不了解XML的公司。向他们发送标准,并突出显示相应的行。他们需要停止认为XML只是带尖括号的文本。它根本不像带尖括号文本。
|
|
|
5
3
Alain Pannetier's solution 这是我们应该走的路。 此外,您可能想看看 DecentXML ;它使您可以完全控制XML的格式,即使它与DOM不兼容。如果你想在不丢失格式的情况下修改一些手工编辑的XML,这特别有用。 |
|
|
6
2
我也遇到了同样的问题。我想修改XML属性,但由于存在差异,我想保持顺序 StAX 看看这个 article/discussion 。您可以看到如何按顺序读取开始元素的属性。 |
|
|
7
0
您仍然可以使用标准的DOM和Transformation API来完成这项工作,方法是使用一个快速而肮脏的解决方案,如我所描述的解决方案: 我们知道转换API解决方案按字母顺序排列属性。您可以在属性名称前添加一些易于删除的字符串,以便它们按照您想要的顺序输出。在大多数情况下,简单的前缀如“a_”、“b_”等应该就足够了,并且可以使用单行正则表达式轻松地从输出xml中删除。 如果您正在加载xml并重新保存,并且希望保留属性顺序,则可以使用相同的原理,首先修改输入xml文本中的属性名称,然后将其解析为Document对象。再次,基于xml的文本处理进行此修改。这可能很棘手,但可以通过使用正则表达式检测元素及其属性字符串来完成。请注意,这是一个肮脏的解决方案。自己解析XML时有很多陷阱,即使是对于像这样简单的事情,所以如果你决定实现它,也要小心。 |
|
|
8
0
|
|
|
9
0
我能想到至少两个原因,你可能会关心属性排序。可能还有其他原因,但至少对于这两个原因我可以提出替代方案:
|
|
|
10
0
在我的简单测试中,它打印:
|
|
|
11
-1
受到以下答案的启发
Andrey Lebedenko
.
|
|
|
J_Cus504 · 在单匹配语句中使用身份变换和多谓词来沉默节点 1 年前 |
|
|
surge3333 · 使用PowerShell构建XML 1 年前 |
|
|
Sandeep · XSLT代码,用于根据条件提取元素值 1 年前 |
|
|
Reto · XSLT 3.0突发流-如何存储/获取另一个分支的值 1 年前 |
|
Ian Kemp · 如何从SelectXml调用本机XPath函数? 1 年前 |