使用元素值查找属性值

本文关键字:查找 属性 元素 | 更新日期: 2024-10-21 13:43:14

下面是我的XML,我需要使用<id>值查找(Id)的变更集属性值,使用Xpath查找<task>/id值。

我尝试了以下查询"ReleaseNotes/ChangeSets/ChangeSet[Comments/checkintext/task/id ='" + jiraId + "']",其中jiraId是<task>id

<?xml version="1.0" encoding="utf-8"?>
<ReleaseNotes>
    <AxVersion>6.2.1000.1437</AxVersion>
    <FromDate>2/1/2015 12:00:00 AM</FromDate>
    <ToDate>2/26/2015 12:00:00 AM</ToDate>
    <ChangeSets>
        <ChangeSet Id="3600">
            <CheckInUserId>XXX'yy</CheckInUserId>
            <Comments>
                <checkintext>
                    <bpcheckdeviated>true</bpcheckdeviated>
                    <task>
                        <id>CS-2215</id>
                        <name>Small performance improvements in hedge qty lookup.</name>
                        <version>V6.0</version>
                        <sprint>17.8</sprint>
                        <project>Cs2215_Mpv_HedgeQtyLookupPerformance</project>
                        <area>Others</area>
                        <taskstatus>Closed</taskstatus>
                    </task>
                    <text>
                        Few small performance improvements in queries.
                    </text>
                    <notes>
                        <note>
                            <section>Info</section>
                            <component></component>
                            <text></text>
                        </note>
                    </notes>
                </checkintext>
            </Comments>
            <Components>
                <Component>
                    <Name>CsMpvCalcMatQtyHedgeBase.xpo</Name>
                    <Type>Classes</Type>
                    <Action>Edit</Action>
                    <Models>
                        <Model Id="I4C" Layer="ISV" />
                    </Models>
                </Component>
                <Component>
                    <Name>CsMpvInsertMatQtyDetails_Agreement.xpo</Name>
                    <Type>Classes</Type>
                    <Action>Edit</Action>
                    <Models>
                        <Model Id="I4C" Layer="ISV" />
                    </Models>
                </Component>
                <Component>
                    <Name>Cs2215_Mpv_HedgeQtyLookupPerformance.xpo</Name>
                    <Type>Shared</Type>
                    <Action>Add</Action>
                    <Models />
                </Component>
            </Components>
        </ChangeSet>
    </ChangeSets>
</ReleaseNotes>

HOw找到属性值提前感谢。。

使用元素值查找属性值

这也应该有效。

//ChangeSet[.//id[text()='CS-2215']]

获取具有特定文本的子id的所有变更集

您几乎做到了:

ReleaseNotes/ChangeSets/ChangeSet[Comments/checkintext/task/id[text()='CS-2215']]

(注意:我使用了一个在线XPath fiddle工具来找到它。)