xpath 表达式:根据其他元素查找元素的值
xpath expression: find value of element based on other element
如果title的值为'This is a title'
,我想求presenter的值
<AXFRoot>
<MAObject type="default" mdclass="PROGRAM">
<GUID dmname="">ID00001</GUID>
</MAObject>
<MVAttribute type="RUNDOWN" index="0" attribute="RUNDOWN" mdclass="PROGRAM" objectid="ID00001">
<Meta name="TITLE" format="string">This is a title</Meta>
<Meta name="AIRDATE" format="string">20201001194131</Meta>
<Meta name="PAGE_NUMBER" format="string">01</Meta>
<Meta name="PRESENTER" format="string">abcdef</Meta>
<Meta name="AUDIO_TIME" format="string">0</Meta>
<Meta name="TOTAL_TIME" format="string">0</Meta>
<Meta name="ARCHIVE" format="string">0</Meta>
<Meta name="MOS_TITLE" format="string" />
</MVAttribute>
<MVAttribute type="RUNDOWN" index="1" attribute="RUNDOWN" mdclass="PROGRAM" objectid="ID00001">
<Meta name="TITLE" format="string">This is another title</Meta>
<Meta name="AIRDATE" format="string">20201001194131</Meta>
<Meta name="PAGE_NUMBER" format="string">01</Meta>
<Meta name="PRESENTER" format="string">ghijkl</Meta>
<Meta name="AUDIO_TIME" format="string">0</Meta>
<Meta name="TOTAL_TIME" format="string">0</Meta>
<Meta name="ARCHIVE" format="string">0</Meta>
<Meta name="MOS_TITLE" format="string" />
</MVAttribute>
</AXFRoot>
到目前为止我得到了
//AXFRoot/MVAttribute[@type='RUNDOWN']/Meta[@name='TITLE' and text()='This is a title']
但这只给我标题元素,而不是演示者的值。我需要添加什么?
你快到了:
//AXFRoot/MVAttribute[@type='RUNDOWN']
/Meta[@name='TITLE' and text()='This is a title']
/../Meta[@name='PRESENTER']
或
//AXFRoot/MVAttribute[@type='RUNDOWN']
[Meta[@name='TITLE' and text()='This is a title']]
/Meta[@name='PRESENTER']
如果title的值为'This is a title'
,我想求presenter的值<AXFRoot>
<MAObject type="default" mdclass="PROGRAM">
<GUID dmname="">ID00001</GUID>
</MAObject>
<MVAttribute type="RUNDOWN" index="0" attribute="RUNDOWN" mdclass="PROGRAM" objectid="ID00001">
<Meta name="TITLE" format="string">This is a title</Meta>
<Meta name="AIRDATE" format="string">20201001194131</Meta>
<Meta name="PAGE_NUMBER" format="string">01</Meta>
<Meta name="PRESENTER" format="string">abcdef</Meta>
<Meta name="AUDIO_TIME" format="string">0</Meta>
<Meta name="TOTAL_TIME" format="string">0</Meta>
<Meta name="ARCHIVE" format="string">0</Meta>
<Meta name="MOS_TITLE" format="string" />
</MVAttribute>
<MVAttribute type="RUNDOWN" index="1" attribute="RUNDOWN" mdclass="PROGRAM" objectid="ID00001">
<Meta name="TITLE" format="string">This is another title</Meta>
<Meta name="AIRDATE" format="string">20201001194131</Meta>
<Meta name="PAGE_NUMBER" format="string">01</Meta>
<Meta name="PRESENTER" format="string">ghijkl</Meta>
<Meta name="AUDIO_TIME" format="string">0</Meta>
<Meta name="TOTAL_TIME" format="string">0</Meta>
<Meta name="ARCHIVE" format="string">0</Meta>
<Meta name="MOS_TITLE" format="string" />
</MVAttribute>
</AXFRoot>
到目前为止我得到了
//AXFRoot/MVAttribute[@type='RUNDOWN']/Meta[@name='TITLE' and text()='This is a title']
但这只给我标题元素,而不是演示者的值。我需要添加什么?
你快到了:
//AXFRoot/MVAttribute[@type='RUNDOWN']
/Meta[@name='TITLE' and text()='This is a title']
/../Meta[@name='PRESENTER']
或
//AXFRoot/MVAttribute[@type='RUNDOWN']
[Meta[@name='TITLE' and text()='This is a title']]
/Meta[@name='PRESENTER']