Может ли кто-нибудь помочь мне с этой маленькой проблемой, с которой я столкнулся.
XML
<MPN>
<MTR MSN="AB123456"/>
<MTR MSN="AB654321"/>
<MTR MSN="AB654322"/>
<MTR MSN="AB654323”/>
<MTR MSN="AB654324"/>
<JOB JobId="136">
<JMR MSN="AB123456">
<JRA DateActionRequiredBy="20090701120012" />
</JMR>
<JMR MSN="AB654321">
<JRA DateActionRequiredBy="20090701100010" />
</JMR>
</JOB>
</MPN>
Я хотел бы получить DateActionRequiredBy из элемента JRA, когда синтаксический анализатор находится в элементе MTR, должен возвращаться только один.
Я пытался.
../JOB/JMR[@MSN = @MSN]/JRA/@DateActionRequiredBy
, который возвращает {Dimension: [2]} NodeSet , это соответствует всему из-за того, что атрибут @MSN эффективно соответствует самому себе, а не родительскому.
../JOB/JMR[@MSN = ./@MSN]/JRA/@DateActionRequiredBy
, который возвращает {Dimension: [2]} NodeSet
Я нашел решение, но для него потребуется переменная внутри каждого атрибута xsl:, что мне не подходит.
<xsl:variable name="storeMSN" select="@MSN"/>
../JOB/JMR[@MSN = $storeMSN]/JRA/@DateActionRequiredBy
который возвращается
20090701120012 Атрибут
Это то, чего я добиваюсь, но должен быть более простой способ добиться этого, кроме переменной для каждого атрибута.
Заранее спасибо.