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性能:元素与属性_Xml_Performance - Fatal编程技术网

XML性能:元素与属性

XML性能:元素与属性,xml,performance,Xml,Performance,我有一个关于XML设计的非常基本的问题。我有用于生成UI的XML。其格式如下: <Input> <Label>Enter Machine Name</Label> <ToolTip> Please enter the correct machine name</ToolTip> <Type>TextField</Type> </Input> 输入机器名 请输入正确的计算机名 文本字段

我有一个关于XML设计的非常基本的问题。我有用于生成UI的XML。其格式如下:

<Input>
  <Label>Enter Machine Name</Label>
  <ToolTip> Please enter the correct machine name</ToolTip>
  <Type>TextField</Type>
</Input>

输入机器名
请输入正确的计算机名
文本字段
我的问题是 以上面的格式编写XML更好,还是以下面的格式编写XML更好,以获得更好的处理时间结果

<Input Label="Enter Machine Name" 
       ToolTip="Please enter machine name"
       Type="TextField">


哪种类型的XML将在更短的时间内被解析?

而属性将占用更少的空间,这对性能是一个优势,而SAX解析将为基于属性的设计生成更少的事件,这可以节省一分钟的时间,在绝大多数情况下,任何属性与元素的性能差异都不重要。

与大多数先验性能担忧一样,最好构建、测量和调整,前提是基本设计合理基本设计的稳健性不受元素与属性的影响。


您应该尝试对XML使用行业标准模式,并遵循它们在元素与属性方面的操作。如果您自己从头开始设计,请参见和其他同级答案。

您应该使用元素,因为它是数据,请参见:
-
-


元素和属性在XML中都是常见的,所以我们希望解析器经过优化,能够很好地处理这两者。我想元素的查找速度要快一点,但我只查看了jQuery Sizzle结果:

-1(1)“您应该执行X,因为我真的很好奇您的说法,即“SAX解析将为基于属性的设计生成更少的事件”“。您能帮助我了解情况吗?@Dmitry:实现可能会有所不同,但SAX通常会为每个属性生成0或1个事件,为每个元素生成2个事件。(可以从start元素事件或通过单独的事件检索属性;元素通常有一个start和一个end事件。)但我真的想在这个答案中强调,这些差异几乎不重要(并且无论如何都依赖于实现)。在元素和属性之间进行选择时,有更重要的设计考虑因素,还有许多其他性能方面将压倒属性和元素之间的任何差异。因此SAX解析器将在一个事件(startElement)中记录属性名称和属性值,而此事件是发送的第一个相关事件,自动关闭避免了对末端标签的检查;要获取其innerHTML表示值且标记名表示键的元素,它需要完成属性解析,然后子元素的startElement查找键,然后才获取值,然后(在内部)浪费时间处理一个无用的endElement事件,然后再处理另一个事件?