#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 для получения указанного желаемого результата