-1

不要な質問に対するすべての回答を見つけたい。これはxmlコードです:

<submittedPoll>
  <pollHead>
    <code>2</code>
  </pollHead>
  <pollBody>
    <topic code="T1">
        <topicHead>
            <title>XML Section</title>
        </topicHead>
        <topicBody>
            <question code="T1Q1" required="true" type="unique">Which encoding did you use?</question>
            <answer code="T1Q1_1">ISO-8859-1</answer>
            <question code="T1Q2" required="true" type="unique">How did you implement blabla?</question>
            <answer code="T1Q2_1">blabla</answer>
            <question code="T1Q3" type="unique">Did you blabla?</question>
            <question code="T1Q4" type="unique">How many times did you blabla?</question>
        </topicBody>
    </topic>
    <topic code="T4">
        <topicHead>
            <title>Other section</title>
        </topicHead>
        <topicBody>
            <question code="T4Q1" type="unique">blabla question?</question>
            <question code="T4Q2" type="unique">blabla other question?</question>
            <question code="T4Q3" required="true" type="multiple">blabla third question?</question>
            <answer code="T4Q3_1">blabla</answer>
            <answer code="T4Q3_2">blablabla</answer>
            <question code="T4Q4" type="unique">blablarly?</question>
            <question code="T4Q5" type="unique">blablanotrly?</question>
            <question code="T4Q6" type="unique">How did you do that?</question>
            <answer code="T4Q6_2">BaseX</answer>
        </topicBody>
    </topic>
  </pollBody>
</submittedPoll>

この XPath クエリを作成しましたが、期待どおりに動作しません。

/submittedPoll/pollBody/topic/topicBody/question[not(@required) or (@required="false")]/following-sibling::answer[starts-with(@code, current()/@code)]

これは、T4Q3_1、T4Q3_2、および T4Q6_2 を返します。しかし、T4Q3_1 と T4Q3_2 は、必須の質問に従っているため、間違っています。

私は何を間違っていますか?機能をよく理解していなかったのかもしれませんcurrent()

注:すべての回答の「コード」属性は、関連する質問の「コード」属性で始まります (つまり、質問T4Q3には回答T4Q3 _1、T4Q3 _2 などがあります)。

4

1 に答える 1