我有XML看起來大致如下:從xpath查詢子集?
<Dispatch ID = "JJJJ">
<Log ID = "150504BCFSP00072">
<LogTime>"May 4 2015 5:48PM"</LogTime>
<LogType>"1125-KKKK"</LogType>
<LogDetails>
<details>
<DetailTime>"May 4 2015 5:48PM"</DetailTime>
<IncidentDetail>"[1] The Thing I Want"</IncidentDetail>
<DetailTime>"May 4 2015 5:49PM"</DetailTime>
<IncidentDetail>"[2] The Thing I Don't Want"</IncidentDetail>
</details>
</LogDetails>
</Log>
</Dispatch>
我想提取日誌中的所有IncidentDetail文本,其中站ID是JJJJ,&其中的日誌類型包含「KKKK」,其IncidentDetail開頭[ 1](使它成爲潛在許多人的第一次更新)。到目前爲止,我有這個XPath查詢:
//Dispatch[@ID='JJJJ']//Log/LogType[contains(.,'KKKK')]
這讓我的事件列表如下:
Element='<LogType>"1125-KKKK"</LogType>'
Element='<LogType>"1125-KKKK"</LogType>'
Element='<LogType>"1125-KKKK"</LogType>'
但是它只是讓我在鼠洞。我現在如何退後一步,爲每個符合我所需要的LogType事件獲取IncidentDetail文本?是否有一些多步驟的過程?
任何協助讚賞。
好的,這幾乎讓我在那裏。我現在有: //發送[@ ID ='JJJJ'和Log/LogType [contains(。,'KKKK')]和Log/LogDetails/details/IncidentDetail [contains(。,'[1]')] ] // LogDetails/details/IncidentDetail 問題是,這不會在最後的'[1]'條件上過濾。請注意,我剛纔添加了第三個過濾條件,因爲我只需要包含[1]的IncidentDetails,表示它是第一個特殊類型,如果這是有意義的(即不是事件更新)。 想法? –
你是不是指像' [1] .. bla..bla .. IncidentDetail>'簡單地說是第一個''節點?如果你的意思是後者,那麼它應該是:'...../IncidentDetail [1]'而不是 –
har07
是的,這就是我的意思。我已經嘗試了你剛纔描述的內容,但它仍然沒有針對這種情況進行過濾。真令人費解。典型的是這樣的:「[1] BLK BLK KKKS SKJDFHJH ETC」 IncidentDetail> 而且經常有多個這樣的更新,按順序編號,但我只是想第一個。無法獲得...../IncidentDetail [1]來篩選該條件。 感謝您的幫助。我會繼續修補。 –