Теперь две вещи, которые меня интересуют:
1.) Как я могу написать выражение, которое соответствует и выводит только кавычки, которые следуют сразу после закрытого элемента (<span></span>
)?
При условии, что предоставленный текст преобразуется в правильно сформированный XML-документ (необходимо заключить значения атрибутов id
в кавычки)
Использовать :
/*/*/span/following-sibling::*[1][self::blockquote]
Это означает на английском языке: Выбрать все blockquote
элементов, каждый из которых является первым, непосредственным следующий брат или сестра элемента span
, являющегося потомком верхнего элемента документа .
2.) Если бы я хотел, то как могЯ получаю Контент 2, Контент 3 и т. Д., Если мне когда-нибудь понадобится вывести их в будущем, при этом применяя правила предыдущего вопроса?
Да .
Вы можете получить все наборы blockquote
элементов после span
:
/*/*/span/following-sibling::blockquote
[preceding-sibling::*[not(self::blockquote)][1][self::span]]
Вы можете получить набор blockquote
элементы, следующие после (N + 1) -го span
по :
/*/*/span/following-sibling::blockquote
[preceding-sibling::*
[not(self::blockquote)][1]
[self::span and count(preceding-sibling::span)=$vN]
]
, где $vN
следует заменить числом N.
Таким образом, набор смежных наборов blockquote
элементов, следующих за первым span
, выбирается с помощью :
/*/*/span/following-sibling::blockquote
[preceding-sibling::*
[not(self::blockquote)][1]
[self::span and count(preceding-sibling::span)=0]
]
множеством смежных наборов blockquote
элементов, следующих за вторым span
выбирается с помощью :
/*/*/span/following-sibling::blockquote
[preceding-sibling::*
[not(self::blockquote)][1]
[self::span and count(preceding-sibling::span)=1]
]
и т. Д. ....
См. В XPath Visualizer узлы, выбранные следующим выражением :
/*/*/span/following-sibling::blockquote
[preceding-sibling::*
[not(self::blockquote)][1]
[self::span and count(preceding-sibling::span)=3]
]
![alt text](https://i.stack.imgur.com/P4VnY.png)