xml - 如何在 XSLT 中选择除 p 之外的任何节点
问题描述
我想选择node
除<p>
XSLT 之外的任何内容并在rap
元素内显示其值。我为此尝试了以下代码。
输入:
<section>
<rap>
<bold>Device,</bold>
<p><bold>manufacturer,</bold></p>
This is paragaraph without element
<p><bold>country</bold></p>
<p><bold>country2</bold></p>
</rap>
</section>
试过的代码:
<xsl:template match="rap[p]/node()[. except p]">
<rap>
<xsl:value-of select="."/>
</rap>
</xsl:template>
预期输出:
<output>
<rap>Device,</rap>
<rap>This is paragaraph without element</rap>
</rap>
电流输出:
<output><rap>
</rap></output><output><rap>Device,</rap></output><output><rap>
</rap></output><output><rap>manufacturer,</rap></output><output><rap>
This is paragaraph without element
</rap></output><output><rap>country</rap></output><output><rap>
</rap></output><output><rap>country2</rap></output><output><rap>
</rap></output>
试过xsltfiddle:https ://xsltfiddle.liberty-development.net/pNvtBGs/2
谢谢你。
解决方案
尝试这个
<xsl:template match="rap">
<output>
<xsl:for-each select="node()[normalize-space() ne '']">
<xsl:if test="not(self::p)">
<rap><xsl:value-of select="normalize-space(.)"/></rap>
</xsl:if>
</xsl:for-each>
</output>
</xsl:template>
推荐阅读
- jquery - 使用 JQuery 添加在现有的大量列表之前'沙后
- json - 如何使用来自不同 json 的数据编写函数?
- python - 将一行/n 列转换为多行/3 列 python-pandas
- c# - C# 无法执行鼠标单击 (WinForms)
- r - R:如果前一行包含某个值,则更新行
- laravel - Laravel 护照从数据库中获取令牌
- c# - 如何将参数传递给 IOC Dependency Resolver 的具体实现
- java - 用 Cup 做前缀表示法
- ag-grid - Ag-grid - 具有自定义单元格编辑器时是否忽略值解析器?
- php - 为什么单击另一个按钮后创建的按钮被使用 PHP 删除?