这是我正在处理的XML文件类型的框架。
SubConvertTemp()
Centigrade=MsgBox(Do you want to convert to centigrade?"),vbYesNo)
InputNumber=Val(InputBox("Enter a temperature for conversion?"))
If Centigradde= vbYes Then
ConvertedTemp= ((9/5 *InputNumber)+32)
MsgBox((InputNumber & " degrees C converts to " & ConvertedTemp &" Degrees F."))
Else: ConvertedTemp=(5/9)*(InputNumber-32)
MsgBox(InputNumber & "degrees F converts to " & ConvertedTemp & "degrees C.")
Worksheets.("Sheet 1).Cells(InputNumber,ConvertedTemp).Offset(-1,0).Value="Name"
end sub
我想在第一个空节点之前计算所有兄弟元素。 在示例中,我希望从上面的元素返回4。
我尝试了<table><tr>
<td>x</td>
<td>y</td>
<td>q</td>
<td>z</td>
<td></td>
<td>o</td>
</tr></table>
,但它返回0.
我做错了什么?
谢谢。
答案 0 :(得分:3)
假设您位于文档节点上(或者更确切地说,是table
节点的父节点),您想要的表达式就是这个......
<xsl:value-of select="count(table/tr[1]/td[.=''][1]/preceding-sibling::*)" />
如果您位于table
节点上,只需将其缩短为此...
<xsl:value-of select="count(tr[1]/td[.=''][1]/preceding-sibling::*)" />
答案 1 :(得分:0)
在下面找到答案代码
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="/">
<xsl:value-of select="count(//tr[1]//td[. = ''][1]/preceding::td)"/>
</xsl:template>
</xsl:stylesheet>