2

ノード内の最後の兄弟の値を取得するために、MS InfoPath で使用する XPath 式を作成しようとしています。(XPath をほとんど使用したことがないので、この質問の言い回しが正しいことを願っています)。

「RepeaterGroup」ノード内の「NamesEval」ノードの最新のインスタンスを特定する必要があります。仮説として、「スティーブ」が最新のイベントに参加しているかどうかを確認します。contains(LatestEvent, "Steve")XPath 式を使用してこれを確認します。最新の「NamesEval」値のみをロードする「LatestEvent」を取得するにはどうすればよいですか?

 <?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.2" productVersion="14.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\Chris\Local%20Settings\Application%20Data\Microsoft\InfoPath\Designer3\db543e141b8f4832\manifest.xsf" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.3"?><my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-09-07T14:19:10" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">
<my:InitialSection>
    <my:InitialField>1</my:InitialField>
    <my:InitialDate>2012-09-14</my:InitialDate>
</my:InitialSection>
<my:RepeaterSection>
    <my:RepeaterGroup>
        <my:RepeaterField>2</my:RepeaterField>
        <my:RepeaterDate>2012-09-15</my:RepeaterDate>
            <my:NamesGroup>
                <my:NamesRepeater>
                    <my:Name>Steve</my:Name>
                </my:NamesRepeater>
                <my:NamesRepeater>
                    <my:Name>Ashley</my:Name>
                </my:NamesRepeater>
                <my:NamesRepeater>
                    <my:Name>Josh</my:Name>
                </my:NamesRepeater>
            </my:NamesGroup>
        <my:NamesEval>Steve;Ashley;Josh;</my:NamesEval>
    </my:RepeaterGroup>
    <my:RepeaterGroup>
        <my:RepeaterField>3</my:RepeaterField>
        <my:RepeaterDate>2012-09-16</my:RepeaterDate>
        <my:NamesGroup>
            <my:NamesRepeater>
                <my:Name>Amanda</my:Name>
            </my:NamesRepeater>
            <my:NamesRepeater>
                <my:Name>Greg</my:Name>
            </my:NamesRepeater>
            <my:NamesRepeater>
                <my:Name>Steve</my:Name>
            </my:NamesRepeater>
            </my:NamesGroup>
        <my:NamesEval>Amanda;Greg;Steve;</my:NamesEval>
    </my:RepeaterGroup>
</my:RepeaterSection>

編集と回答

Choroba は以下の質問に答えました - ここに解決策があります://my:RepeaterGroup[0=count(following-sibling::my:RepeaterGroup)]//my:NamesEval

4

1 に答える 1

5

あなたの質問を理解しているかどうかわかりません。最後の NamesEval に文字列 "Steve" が含まれていることを確認する場合は、次の XPath 式を使用できます。

contains((//my:NamesEval)[last()],'Steve')
于 2012-09-07T18:14:24.053 に答える