Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在单行中显示属性@id、@name、@parent_Xml_Xslt 2.0 - Fatal编程技术网

Xml 在单行中显示属性@id、@name、@parent

Xml 在单行中显示属性@id、@name、@parent,xml,xslt-2.0,Xml,Xslt 2.0,我有XML中的标记,其中有多个属性@id、@name、@parent。当我在编辑器中打开XML时,所有三个属性都不会显示在一行中。 就像: Test id="" name="" parent="" child="" 我希望所有这些属性都在一行中 Test id="" name="" parent="" child="" 我正在使用XSLT转换XML以获得所需的XML 提前谢谢 如果要在XSLT处理器上使用xsl:output控件序列化XSLT转换的结果树,那么规范对序列化的某些方面进行了规

我有XML中的标记,其中有多个属性@id、@name、@parent。当我在编辑器中打开XML时,所有三个属性都不会显示在一行中。 就像:

Test id="" name=""
 parent="" child=""
我希望所有这些属性都在一行中

Test id="" name="" parent="" child=""
我正在使用XSLT转换XML以获得所需的XML


提前谢谢

如果要在XSLT处理器上使用xsl:output控件序列化XSLT转换的结果树,那么规范对序列化的某些方面进行了规定,但其他方面则留给XSLT处理器处理。规范中没有约束开始标记中的属性是否由空格、制表符或换行符分隔的内容,也没有约束在属性值周围使用单引号或双引号的内容,也没有约束属性顺序的内容

您的特定XSLT处理器可能有自己的方式来允许您控制这些事情。对于Saxon,正如@MartinHonnen提到的,只有在超出最大行长度时,属性才会被包装到新行上,并且您可以使用Saxon序列化选项设置最大行长度


然而,即使XSLT序列化程序以特定的方式输出它,XML编辑器也有权以不同的方式显示它。属性值之间的空白被认为是无关紧要的(因为它不会向接收应用程序传递任何信息),因此处理管道中的XML工具不需要或不希望保留它的精确形式。

您使用的XML编辑器或您使用的特定XSLT处理器现在有问题吗?您需要准确地解释您使用的导致问题的软件。例如,如果您使用Saxon 9,那么就有一个扩展属性
Saxon:line length
,请参阅,它在将属性放到新行时为您提供一些控制。