转换内容位于 CDATA 内的 xml 元素

2024-02-26

我有一个如下所示的 xml 片段

<Detail uid="6">
    <![CDATA[
    <div class="heading">welcome to my page</div>
    <div class="paragraph">this is paraph</div>
    ]]>
</Detail>

我希望能够改变

<div class="heading">...</div> to <h1>Welcome to my page</h1>
<div class="paragraph">...</div> to <p>this is paragraph</p>

你知道我如何在 xslt 1.0 中做到这一点吗


运行两个转换怎么样?

通过1。)

<?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

    <xsl:template match="Detail">
        <Detail>
            <xsl:copy-of select="@*"/>
        <xsl:value-of select="." disable-output-escaping="yes" />
        </Detail>
    </xsl:template>

</xsl:stylesheet>

将产生:

<?xml version="1.0" encoding="UTF-8"?>
<Detail uid="6"> 
    <div class="heading">welcome to my page</div>
    <div class="paragraph">this is paraph</div>
</Detail>

Pass 2.)

<?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

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

    <xsl:template match="div[@class='heading']">
        <h1><xsl:value-of select="."/></h1>
    </xsl:template>

    <xsl:template match="div[@class='paragraph']">
        <p><xsl:value-of select="."/></p>
    </xsl:template>

</xsl:stylesheet>

生产:

<?xml version="1.0" encoding="UTF-8"?>
<Detail uid="6">
<h1>welcome to my page</h1>
<p>this is paraph</p>
</Detail>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转换内容位于 CDATA 内的 xml 元素 的相关文章

随机推荐

  • 如何外部化 web.xml servlet init-param? Spring DelegatingFilterProxy 用于 Servlet?

    我有一个无法修改的第 3 方 servlet 它接受一个init param我想外部化 来自 web xml 我可以外部化 servlet 过滤器init param using 委托过滤代理 http static springsourc
  • Tomcat 上下文管理

    tomcat 6 0 文档位于http tomcat apache org tomcat 6 0 doc config context html http tomcat apache org tomcat 6 0 doc config co
  • 通过反射调用 getter 的最佳方式

    我需要获取具有特定注释的字段的值 因此通过反射我能够获取此字段对象 问题是这个字段将始终是私有的 尽管我事先知道它总是有一个 getter 方法 我知道我可以使用 setAccesible true 并获取它的值 当没有 Permissio
  • Yii 不是自动的,包括 jquery

    我在使用 Yii 和 Jquery 时遇到一个奇怪的问题 当我在本地主机上打开一个使用 ajax jquery 的页面时 Yii 会自动添加对页面的资产包含调用 但是 当我在服务器上运行相同的代码时 Yii 不会执行此
  • Django 以 10 为基数的 int() 的文字无效

    我正在 Django 中创建一个简单的搜索结果页面 用户通过文本搜索并从下拉列表中添加城市字段 查询如下 if query in request GET and request GET query city request GET city
  • 如何在椭圆形边框内设置圆形图标元素的样式?

    我正在尝试编写此代码 但我在如何处理边框和其他东西中的不同颜色方面遇到了困难 到目前为止 我的 html 代码中有 buttonfilter color 0065FC background color DEEBFF height 20px
  • 如何在 Git 中查看文件历史记录?

    通过 Subversion 我可以使用乌龟SVN https en wikipedia org wiki TortoiseSVN查看文件的历史记录 日志 我怎样才能用 Git 做到这一点 我只是寻找特定文件的历史记录 然后比较不同版本的能力
  • 如何在 Angular 2 中创建导入 QuillJS 模块的组件?

    我对 Angular 2 和 TypeScript 还很陌生 我正在使用 AngularCLI 和 NPM 创建我的 Angular 项目 我已经使用 NPM 将 quill 节点模块安装到我的项目中 我现在正在尝试创建一个组件 在其中我可
  • DataGridView 自动调整大小但限制最大列大小

    在我的 C 4 0 应用程序中 我有一个 DataGridView 来显示一些数据 我希望列的大小与内容相对应 因此我将 AutoSizeColumnsMode 设置为 AllCellsExceptHeader 但我想限制列的增长超过某个值
  • Android M 检测权限对话框是否可见

    如何以编程方式确定用户是否可以看到权限对话框 以便我知道在这种情况下该怎么做 Override protected void onStart super onStart ActivityManager am ActivityManager
  • iOS 11 beta 4 呈现渲染缓冲区崩溃

    当调用 EAGLContext PresentRenderbuffer 方法时 我的应用程序在 iOS 11 beta 4 15A5327g 上崩溃 仅当我在 Xcode 中调试时才会发生这种情况 当我手动启动应用程序时 它不会崩溃 在低于
  • 从 android 中的 tabactivity 调用 listactiviy

    是否可以通过tab Activity调用listactivity 基本上 我正在开发一个带有 3 个选项卡的应用程序 为此我使用 tabactivity 此外 在其中一个选项卡中我想要一个列表视图 所以我从列表活动中派生出来 现在我想在列表
  • 如何让 VS Code 在打开文件时不打开文件资源管理器窗口

    我在 Mac 上 当我使用 VS Code 打开文件时CMD O 如下图所示 我有一台不同的机器 使用CMD O打开一个小文件资源管理器作为可编辑的地址栏 请参阅其他图像 我一直无法弄清楚哪些设置选项可以配置此功能 如何让 VS Code
  • 无法获取以 Json 形式返回的 Yii2 对象数据

    我是 Yii2 框架和 PHP 的新手 当我尝试从服务器检索模型数据时json 我得到一个空结果 但是 当我使用var dump 我得到一个非空结果 控制器类代码 public function actionIndex client new
  • bootstrap-select 下拉选项有时未加载

    我正在使用 bootstrap select 1 12 4 版本和 Angular 4 3 5 我正在尝试使用 http 调用和异步管道加载下拉选项 我面临的问题是 刷新页面时 大多数情况下都不会加载选择下拉选项 但有时选项会加载 我不确定
  • 创建存储过程(如果尚不存在)

    我想检查存储过程列表是否存在 我希望这一切都在一个脚本中一一完成 到目前为止我有这样的格式 USE myDatabase GO IF NOT EXISTS SELECT FROM sys objects WHERE type P AND n
  • 如何设置 SUDO_ASKPASS 环境变量?

    设置 SUDO ASKPASS 环境变量意味着什么 你怎么做呢 我在哪里声明 我正在尝试使用 shell 脚本在几分钟后关闭我的计算机并使用 java 启动此脚本 所以我不确定我会使用 SUDO ASKPASS为了这 基本上的价值 SUDO
  • 显示提交之间的差异

    我正在使用 GitUbuntu 10 04 https en wikipedia org wiki Ubuntu version history Ubuntu 10 04 LTS 28Lucid Lynx 29 清醒山猫 我已经向我的主人做
  • 分叉存储库 - 每次与上游同步时解决相同的合并冲突

    我已经分叉了一个存储库 但我想经常使其与上游存储库保持同步 我用自己的实现交换了一些模块 这意味着每次我想与上游存储库同步时 我都会一遍又一遍地遇到相同的合并冲突 我的问题是 有没有办法告诉 Git 对于这些情况使用我自己的实现 而不是将其
  • 转换内容位于 CDATA 内的 xml 元素

    我有一个如下所示的 xml 片段