gpt4 book ai didi

xml - xsl :value-of 的最快 XPath 表达式

转载 作者:行者123 更新时间:2023-12-03 16:11:34 25 4
gpt4 key购买 nike

我有一个以下格式的 XML 文档:

<Contents>
<Content Name="ClientXML">
<EntityData>
<Data Name="EQ_EligibleForGuaranteedIssue">Yes</Data>
<Data Name="ABRInd">NO</Data>
<Data Name="AC_AgentNo">12345</Data>
<Data Name="AC_AgentPersonallyMetWithApplicant">Has</Data>
<Data Name="AC_City">Pomona</Data>
<Data Name="AC_FirstName">Kimmy</Data>
<Data Name="AC_FullName">Kimmy N Jackson</Data>
<Data Name="AC_Initials">K J</Data>
<Data Name="AC_LastAndSuf">Jackson</Data>
...
</EntityData>
</Content>
<Content Name="UserXML">
<EntityData>
<Data Name="TransRefGUID">789-456-123456789-456</Data>
...
</EntityData>
</Content>
</Contents>

其他信息:

  1. 每个“EntityData”对象下可以有数千个“Data”节点<​​/li>
  2. 任何“名称”属性的值都不会重复。

我必须创建一个 XSL 转换并使用 xsl:value-of select="..."函数​​。我的问题是,哪种 XPath 表达式执行速度最快?例如

<xsl:value-of select="\\Contents\Content[@Name="ClientXML"\EntityData\Data[@Name=".."]">

或者只是

<xsl:value-of select="\\Data[@Name=".."]">

我无权访问最终将运行此进程的终端服务器,并且在本地,第二个选项可能看起来更快一些。

想知道是否有人有意见,并且在更大范围内是否可以更快。

谢谢!

最佳答案

在 XSLT 中使用键比 XPath 表达式要快得多,尤其是带有 // 的表达式,它的执行速度可能非常慢,只应在必要时使用。

<xsl:key match="Content" use="@Name" name="MyContentsLookup"/>
...
<xsl:value-of select="key('MyContentsLookup','ClientXML')"/>

XSLT 处理器可以实现内部搜索机制以在数万个条目中快速查找值,这比使用 XPath 快得多。

我在这里发布了 XSLT key 的概述:http://www.CraneSoftwrights.com/resources/xslkeys/index.htm

关于xml - xsl :value-of 的最快 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com