XSLT:更改节点内部文本

2023-11-27

我需要转换以下 xml 文档:

<a>
  <b/>
  <c/>
   myText
</a>

进入这个:

<a>
  <b/>
  <c/>
   differentText
</a>

所以,我写了这个 XSLT 文档

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" version="1.0" omit-xml-declaration="no" />

  <xsl:template match="/a/text()">
    <a>
      <b/>
      <c/>
      differentText
    </a>
</xsl:template>
</xsl:stylesheet>

这样,我得到以下结果:

<?xml version="1.0" encoding="utf-8"?>
<a>
  <b /><c />
  differentText
</a>
<a>
  <b /><c />
  differentText
</a>
<a>
  <b /><c />
  differentText
</a>

结果出现重复 3 次,因为正在进行 3 场比赛。为什么?我可以修复它吗?谢谢


排除仅包含空格的文本节点。了解并使用<xsl:strip-space>操作说明.

这种转变:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="a/text()">
   <xsl:text>Diferent text</xsl:text>
 </xsl:template>
</xsl:stylesheet>

当应用于提供的 XML 文档时,会产生所需的正确结果.

特定模板的匹配表达式中不需要复杂的谓词!

我们应该努力寻求最简单、最短、最优雅、最可读、最容易理解的解决方案,充分利用语言的力量。

这样的解决方案很可能是最容易理解、最容易实现并且最有可能被任何 XSLT 处理器优化的,从而实现最有效的实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT:更改节点内部文本 的相关文章

随机推荐

  • 尝试保存数据时无法找到实体..

    当我尝试保存带有消息的主题时 出现此异常 嵌套异常是 javax persistence EntityNotFoundException 无法找到 ID 为 fb8d39ea 0094 410d 975a ea4495781422 的 my
  • 如何确定 NSString 是否基于拉丁语?

    我正在尝试确定字符串是基于拉丁语还是日语 我尝试过类似以下的操作 但对于日语字符串它也返回 YES NSCharacterSet alphaSet NSCharacterSet alphanumericCharacterSet BOOL i
  • 让 Maven 和 SBT 使用本地 Artifactory 服务器

    我需要让 Maven 和 SBT 使用本地 Artifactory 服务器 这是唯一具有 Internet 连接的机器 服务器 CI 机器等无法访问外部世界 尤其是SBT让我头发变白了 SBT 连接到 Artifactory 时出现问题 使
  • 如何使用 jQuery 比较两个日期选择器日期

    这是我的代码 var from fromDate datepicker getDate var to toDate datepicker getDate if from gt to alert from date shouldn t gre
  • 设置绘图的自动缩放限制,以便在所有点周围都有缓冲区

    我想在 matplotlib 中使用 pyplot 绘制一组点 但没有一个点位于轴的边缘 自动缩放 或其他东西 设置xlim and ylim这样第一个点和最后一个点通常位于x xmin or xmax在某些情况下导致阅读困难 这更经常出现
  • 如何解读分析结果?

    我使用 NetBeans 和 VisualVM 运行内存分析器并收到结果 但不知道如何分析其结果 我研究了这个article但它没有教导或提供如何解释结果的线索 我也发现了这个article关于解释 Netbeans 4 上的结果 但我正在
  • 自调用函数内的递归函数上的 setTimeout()

    我想将我的代码作为自调用匿名函数分发 正如我看到的许多人所做的那样 另外 在我的代码中 我必须监视另一个库的加载 这样我就可以在它可用时使用它 function window document undefined staffHappens
  • Google Drive Sdk - iOS 应用程序中的音频和视频流

    嗨 Google 云端硬盘工作人员 我已经尝试过从 Google 云端硬盘流式传输视频文件 无需下载 但我收到登录提醒 我已经彻底检查了 Dr Edit 示例应用程序 但没有找到任何解决方案 我尝试过downloadUrl embedLin
  • Android应用程序盗版预防[关闭]

    Closed 这个问题是无关 目前不接受答案 看看 stackoverflow 上的一些帖子 截至撰写本文时 似乎确实没有办法有效防止应用程序盗版 这里真的有人因应用程序盗版而蒙受损失吗 您当前针对应用程序破解者的解决方案 免费或非免费 是
  • NSString nslog 显示“\n”换行符

    我想记录一个 NSString 但当我记录它时 它不显示新行字符 n 我怎样才能做到这一点 谢谢 您可以先处理该字符串并替换所有出现的 n with n NSString newString originalString stringByR
  • 图像中的 r 轴标签

    我需要按呼叫中心的空间位置绘制指标图表 我用 R 写了一个小例子 tt lt data frame a1 c 0 4 5 5 7 a2 c 5 6 7 8 a3 c 8 7 9 8 row names tt lt paste L 1 4 s
  • 如何使用 SharedPreferences [重复]

    这个问题在这里已经有答案了 我是 Android 开发新手 使用一本名为 Sams Teach Yourself Android Application Development in 24 hours 的书 到目前为止 但在尝试使用 Sha
  • 在 Visual Studio 2010 中,如何搜索不在单行注释内的文本?

    在 Visual Studio 2010 中 如何搜索不在单行注释内的文本 例如 如何在以下位置找到 bas foo bar bas 但不在 foo bar bas 请注意 它应该找到以下行 foo bar bas 编辑 它不应该找到该行
  • 相同的 Ajax 调用了两次..JQuery

    我在 JQuery 中有一个问题 我正在使用 ajax 在我的代码中 Function 1 将字段名和序列号发送到 ctrller 后者通过以下方式获取数据 POST name and POST sequenceno 并使用未给定的序列更新
  • Math.Round 返回奇数向上舍入,但偶数向下舍入

    我正在尝试使用数学循环找到一个浮点数 我发现了以下内容 0 5 gt 0 1 5 gt 2 2 5 gt 2 3 5 gt 4 等等 我相信这是由于浮点错误造成的 但不太确定是如何造成的 我怎样才能解决这个问题 以便偶数正确舍入 From
  • 避免 Android Market 对可选使用位置进行过滤

    在我的应用程序中 我尝试使用位置信息 如果可用 因此 我的清单中有这些权限 e g
  • 对列中的每个单元格应用函数并将结果添加到新列

    我有一个 data table 如下所示 我想要的是将一个函数应用于 C 列中的每个元素 该函数将接受一个向量 因为 Col C 包含向量元素 并返回另一个向量 应将所得向量添加到新列中 A B C 1 16 151 c 2579 2659
  • Yii框架登录后重定向页面

    我是 Yii 框架的新手 在 Yii 中 当您默认登录时 它会重定向到索引页面 我希望当我登录 Yii 时 页面将重定向到另一个页面而不是索引页面 那么任何人都可以帮助我吗 任何帮助或建议将非常感激 edit 当我使用用户模块时 重定向将如
  • 显示与线连接的树视图项目?

    有没有办法让树视图在展 开项目时显示连接项目的线 Thanks 您必须替换 TreeViewItem 控件模板才能实现这一点 看着MSDN 上的这个线程应该有您需要的所有信息
  • XSLT:更改节点内部文本

    我需要转换以下 xml 文档 a b b a