Можно ли выбрать свойства узла в XPATH?

#xpath

#xpath

Вопрос:

У меня есть XML вида:

 <articleslist>
    <articles>
        <originalId>507948</originalId>
        <title>Hogan Lovells Training Contract</title>
        <slug>hogan-lovells-training-contract</slug>
        <metaTitle>Hogan Lovells Training Contract</metaTitle>
        <metaDescription>Find out about the Hogan Lovells Training Contract and Application Process</metaDescription>
        <language>en</language>
        <disableAds>false</disableAds>
        <shortUrl>false</shortUrl>
        <category_slug>law</category_slug>
        <subcategory_slug>industry</subcategory_slug>
        <updatedAt>2021-03-15T18:38:51.058 00:00</updatedAt>
        <createdAt>2018-11-29T06:42:51.665 00:00</createdAt>
    </articles>
</articlelist>
 

Я могу выбрать значения строк с помощью XPATH //articles .

Как я могу выбрать дочерние свойства статей (т. Е. Заголовки столбцов), чтобы я вернул список формы:

 originalId
title
slug
etc...
 

Комментарии:

1. посмотрите на string-join, чтобы создать список с разделителями, или используйте xquery

Ответ №1:

Зависит от вашей версии XPath.

В XPath 2.0 это просто //articles/*/name()

В версии 1.0 это невозможно, потому что нет такого типа данных, как «последовательность строк». Вам нужно было бы вернуть набор элементов как //articles/* , а затем извлечь их имена в вызывающей программе.