Xpath Извлекает данные из родительского элемента, а не из его дочерних элементов, где родительское имя совпадает с дочерним

#postgresql-9.5 #xpath-2.0

#postgresql-9.5 #xpath-2.0

Вопрос:

Родительский и дочерний теги имеют одинаковое имя. Я пытаюсь извлечь все из родительского элемента, за исключением дочерних элементов.

У нас есть несколько строк в родительском элементе, которые мы хотим извлечь. Есть несколько родительских и дочерних элементов, которые вложены, как показано ниже.

Пробовал //Record/previous-sibling::*, который не дает мне начальный и конечный тег родительского элемента. [not (descendant::Record)] и многие другие альтернативы, но безуспешно.

 <Record contentId="1"> 
    <Metrics_Library_Name>Text1</Metrics_Library_Name>  
    <Metrics_Library_ID>1</Metrics_Library_ID>  
    <Record contentId="1a"> 
        <Questionnaire_ID>1a</Questionnaire_ID>  
        <Year>2018</Year>  
        <Quarter/>  
        <Month>02-Feb</Month> 
    </Record>  
    <Record contentId="1b"> 
        <Questionnaire_ID>1a</Questionnaire_ID>  
        <Year>2018</Year>  
        <Quarter/>  
        <Month>02-Feb</Month> 
    </Record> 
</Record>
  

Ожидаемый результат:

 <Record contentId="1"> 
    <Metrics_Library_Name>Text1</Metrics_Library_Name>  
    <Metrics_Library_ID>1</Metrics_Library_ID> 
</Record>
  

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

1. <Родительская запись 1> <Текст1> <Текст2>… <Дочерняя запись><Text1></Child1> <Text2><Дочерняя запись>… </Child2> </Parent1 Запись> <Parent2 запись> <Text1> <Text2>… <Дочерняя запись><Text1> <Text2></Child1><Дочерняя запись>… </Child2> </Parent2 Запись>

2. XPath выбирает узлы, но XPath доступен только для чтения — он не может удалять дочерние элементы выбранного узла. Используйте XSLT для получения указанного желаемого результата