У меня есть XML, который выглядит примерно так:
<Assessment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" GUID="00000000-0000-0000-0000-000000000000">
<Data ID="4543" DateCreated="2020-02-18T09:22:31.743">
<Questions>
<Question ID="120" RowNumber="1" ElementName="E147" ElementType="DropDownList" Type="a32c5590-cd7c-4b1f-8df5-592cd243e0e0" Required="false" IncludeComment="false">
<Text>Foo Hours</Text>
<Answers>
<Answer ID="718" Type="a32c5590-cd7c-4b1f-8df5-592cd243e0e0">
<Text>.25</Text>
</Answer>
</Answers>
</Question>
<Question ID="121" RowNumber="2" ElementName="E121" ElementType="CheckBoxList" Type="22c5e458-d3ff-4f45-b669-ba0ec8f3703d" Required="false" IncludeComment="false">
<Text>Foo</Text>
<Answers>
<Answer ID="739" Type="22c5e458-d3ff-4f45-b669-ba0ec8f3703d">
<Text>This is some text</Text>
</Answer>
</Answers>
</Question>
<Question ID="122" RowNumber="3" ElementName="E142" ElementType="TextBox" Type="" Required="false" IncludeComment="false">
<Text>Other</Text>
<Answers>
<Answer Type="Assessment6" Qualifier="E142">
<Text>42</Text>
</Answer>
</Answers>
</Question>
<Question ID="123" RowNumber="4" ElementName="E148" ElementType="DropDownList" Type="a32c5590-cd7c-4b1f-8df5-592cd243e0e0" Required="false" IncludeComment="false">
<Text>Bar Hours</Text>
<Answers>
<Answer />
</Answers>
</Question>
<Question ID="124" RowNumber="5" ElementName="E122" ElementType="CheckBoxList" Type="3d29c234-99de-4ba1-a8a1-a3e20a6e880c" Required="false" IncludeComment="false">
<Text>Bar </Text>
<Answers>
<Answer />
</Answers>
</Question>
<Question ID="125" RowNumber="6" ElementName="E123" ElementType="TextBox" Type="" Required="false" IncludeComment="false">
<Text>Other</Text>
<Answers>
<Answer />
</Answers>
</Question>
<Question ID="126" RowNumber="7" ElementName="E149" ElementType="DropDownList" Type="a32c5590-cd7c-4b1f-8df5-592cd243e0e0" Required="false" IncludeComment="false">
<Text>Baz Hours</Text>
<Answers>
<Answer />
</Answers>
</Question>
<Question ID="127" RowNumber="8" ElementName="E124" ElementType="CheckBoxList" Type="5b6901f2-2e52-483b-9b4c-9426744c1076" Required="false" IncludeComment="false">
<Text>Baz</Text>
<Answers>
<Answer />
</Answers>
</Question>
<Question ID="128" RowNumber="9" ElementName="E125" ElementType="TextBox" Type="" Required="false" IncludeComment="false">
<Text>Other</Text>
<Answers>
<Answer />
</Answers>
</Question>
</Questions>
</Data>
</Assessment>
Я хочу выбрать все теги Question
, которые имеют ElementType
значения атрибута DropDownList
, и сложить их значения. Поэтому я попробовал это:
<xsl:value-of select="sum(Data/Questions/Question[@ElementType=DropDownList]/Answers/Answer/Text)" />
Но я получаю ноль по какой-то причине. Если я опускаю условное выражение [@ElementType=DropDownList]
, я получаю NaN
, который указывает, что все значения суммируются, включая текстовые значения. Так что с этим условием что-то не так, но я не уверен, что ...