Я не очень хорошо знаком с xpath. Но я работал с выражениями xpath и устанавливал их в базе данных. На самом деле это просто инструмент BAM для biztalk.XPath concat несколько узлов
Во всяком случае, у меня есть XML, который может выглядеть как:
<File>
<Element1>element1<Element1>
<Element2>element2<Element2>
<Element3>
<SubElement>sub1</SubElement>
<SubElement>sub2</SubElement>
<SubElement>sub3</SubElement>
<Element3>
</File>
мне было интересно, если есть способ, чтобы использовать выражение XPath получать все Подэлементы concatted? В настоящий момент я использую:
/*[local-name()='File']/*[local-name()='Element3']/*[local-name()='SubElement']
Это работает, если у него есть только один индекс. Но, по-видимому, мой xml иногда имеет больше узлов, поэтому он дает NULL. Я мог бы просто использовать
/*[local-name()='File']/*[local-name()='Element3']/*[local-name()='SubElement'][0]
, но мне нужны все узлы. Есть ли способ сделать это?
Большое спасибо!
Edit: Я изменил XML, я был неправ, это другое, это должно выглядеть следующим образом:
<item>
<element1>el1</element1>
<element2>el2</element2>
<element3>el3</element3>
<element4>
<subEl1>subel1a</subEl1>
<subEl2>subel2a</subEl2>
</element4>
<element4>
<subEl1>subel1b</subEl1>
<subEl2>subel2b</subEl2>
</element4>
</item>
И мне нужно иметь код на одну строку, чтобы получить результат, как: «subel2a subel2b» ;
Мне нужна одна строка, потому что я устанавливаю это выражение xpath как атрибут xml (не мой выбор, он указан). Я попробовал string-join, но он не работает.
Не должно быть '' во второй раз? –
Anthony
Нет, это целая точка – WtFudgE