xml - 在自闭元素之间选择文本
问题描述
我想在自闭pet
元素之间选择文本。
输入:
<root>
<pet/>pet1<pet/><pet>cor1</pet><pet>vsr</pet><pet/>mnt<pet/>
</root>
预期输出:
<output>
<ou>pet1</ou>
<ou>mnt</ou>
</output>
逻辑:
这里pet1
和mnt
之间是自闭<pet/>
的。所以我想选择这样的文本
试过xpath:
text()[preceding-sibling::pet][following-sibling::pet]
上面的 xpath 不起作用。我该如何解决这个问题?我正在使用 XSLT 2.0
谢谢你。
解决方案
您可以使用在空元素text()[preceding-sibling::node()[1][self::pet[not(node())]][following-sibling::node()[1][self::pet[not(node())]]
之间查找文本节点;pet
你无法区分XSLT/XPath 中的<pet/>
和<pet></pet>
,这些是词汇上的差异,没有反映在 XSLT/XPath 的树模型中。
推荐阅读
- java - 为什么我的组合框 selectedItem 不起作用?
- c# - C# Marshal.GetActiveObject() 替代 .NET 5.0 上的 Outlook 自动化
- javascript - Apache ECharts:桑基色
- docker - 使用 docker-compose 的容器具有不同的行为,具体取决于执行它们的机器
- sql - 如何优化这个复杂的查询?
- c# - 可以在使用旧版本 c# 的项目中使用使用较新版本 c# 构建的 NuGet 包吗?
- python - 如何将每个数字除以python中每一行的总和
- python - 为什么我的简单代码即使很简单也不能运行,而不是我的
- postgresql - 在这种情况下有什么问题,因为从 postgres 函数返回自定义类型集
- reactjs - 如何从一个组件导入功能对另一个组件做出反应以呈现它?