gpt4 book ai didi

excel - VBA (Excel) 中的 XPath 评估

转载 作者:数据小太阳 更新时间:2023-10-29 02:30:10 25 4
gpt4 key购买 nike

我有一个要在 Excel 2010 中计算的 xml 文件。xml 文件如下所示:

<Account>
<Entry>
<Value>5</Value>
</Entry>
<Entry>
<Value>4</Value>
</Entry>
<Entry>
<Value>-3.6</Value>
</Entry>
</Account>

我想对符合某些指定条件的每个“条目”的所有值求和。我需要的评估如下:

sum(/*/Entry[Date[starts-with(., '04') and contains(., '2014')]][Value < 0.0][not(ContraEntryID)]/Value)

我不知道如何在 Excel 中对此进行评估。到目前为止,我得到的是一个选择,我在之后对它的每一项进行总结,但必须有更好的方法来直接获得正确的评估吗?这是我已经写的:

Private Sub getSumOfValues()

Dim xmlFile As String
xmlFile = "..."

Dim xmlDoc As New MSXML2.DOMDocument60
Dim xmlSelection As IXMLDOMSelection

xmlDoc.async = False
xmlDoc.validateOnParse = True

xmlDoc.Load (xmlFile)

xmlDoc.setProperty "SelectionLanguage", "XPath"

Set xmlSelection = xmlDoc.SelectNodes("/*/Entry[Date[starts-with(., '04') and contains(., '2014')]][Value < 0.0][not(ContraEntryID)]/Value")

Dim i As Integer
Dim sum As Double
sum = 0
Dim val As String

For i = 0 To xmlSelection.Length - 1
val = xmlSelection.Item(i).Text
val = Replace(val, ".", ",")
sum = sum + CDbl(val)
Next i
Debug.print(sum)
End Sub

最佳答案

据我所知,Msxml 只支持计算返回节点集的 XPath 表达式,没有 API 可以计算返回数字等原始值的 XPath 表达式。使用 MSXML,您所能做的就是创建并执行一个样式表,它执行 <xsl:value-of select="sum(...)"/> .

还有其他的 XPath 实现,例如 Microsoft .NET 框架,提供 Evaluate方法。我不确定您是否可以在 Office 中使用它。

关于excel - VBA (Excel) 中的 XPath 评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24497394/

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