复制命名空间的所有元素,不复制任何其他元素

2023-12-07

我们有一堆 html 页面文件,但其中包含额外的 xml 元素(全部以我们公司名称“TLA”为前缀),为我现在正在重写的旧程序提供数据和结构。

表格示例:

<html >
<head>
    <title>Highly Simplified Example Form</title>
</head>
<body>
    <TLA:document xmlns:TLA="http://www.tla.com">
        <TLA:contexts>
            <TLA:context id="id_1" value=""></TLA:context>
        </TLA:contexts>
        <TLA:page>
            <TLA:question id="q_id_1">
                <table>
                    <tr>
                        <td>
                            <input id="input_id_1" type="text" />
                        </td>
                    </tr>
                </table>
            </TLA:question>
        </TLA:page>
        <!-- Repeat many times -->
    </TLA:document>
</body>
</html>

我的任务是编写一个预处理器,它将提取所有“TLA”元素并忽略 html 元素

所需的 XML 输出:

<?xml version="1.0" encoding="utf-8" ?>
<TLA:document xmlns:TLA="http://www.tla.com">
    <TLA:contexts>
      <TLA:context id="id_1" value=""></TLA:context>
    </TLA:contexts>
    <TLA:page>
      <TLA:question  id="q_id_1">
      </TLA:question>
    </TLA:page>
    <!-- Repeat many times -->
</TLA:document>

这应该可以通过 XSLT 实现,但我无法制定正确的代码。这是我到目前为止所拥有的:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
    xmlns:tla="http://www.tla.com"
>
    <xsl:output method="xml" indent="yes"/>

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

它提取我想要的元素(但不是它们的属性!),但也提取 html 元素的文本属性和内容。如何排除 html 元素及其内容?


这应该可以做到:

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

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

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

当在示例输入上运行时(添加缺少的命名空间声明后),结果为:

<TLA:document xmlns:TLA="http://www.tla.com">
  <TLA:contexts>
    <TLA:context id="id_1" value="" />
  </TLA:contexts>
  <TLA:page>
    <TLA:question id="q_id_1" />
  </TLA:page>
</TLA:document>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复制命名空间的所有元素,不复制任何其他元素 的相关文章

随机推荐

  • 路径中的 Angular 4 路由器 %2F 符号

    Angular4 路由器存在一些问题 我创建了一个菜单项列表 并且从后端获取了用于创建路由器链接的对象 但是如果菜单项 link等于 mypath example 如果我单击此项目 它将被替换为 mypath 2Fexample 的角度 所
  • 如何将固定高度标题与灵活的页面布局结合起来

    问题 如何将固定高度与灵活的页面布局结合起来 bodyDiv 高度需要为 window innerWidth 的 100 less px a 和 b 高度需要为 body div height 的 50 less px div style
  • 如何理解 Python 循环的“else”子句?

    许多 Python 程序员可能不知道以下语法while循环和for循环包括一个可选的else clause for val in iterable do something val else clean up 的身体else子句是执行某些类
  • 如何定义一个特征方法来获取可以是其实现者设置的类型的值?

    我有一个关于特定特征的定义的问题 基本上我想定义一个特征 它提供一个函数来获取可以识别它的结构的 id 或键 但是 我陷入困境 不知道如何定义该特征 或具体实现 例如我有这个结构Data here derive Debug struct D
  • 在解密程序中使用负数取模时出现问题

    我对 C 相当陌生 最近一直致力于制作一个简单的加密 解密程序 我设法很好地进行了加密 但在解密方面遇到了障碍 相关代码如下 加密 其中 asciinum 是字母的 ascii 值 k 是要移动的 vigenere 密钥 shifts lo
  • 计算对象数组中的重复项

    我的服务器端 JS 中有一个对象数组 如下所示 Company IBM Person ACORD LOMA Company IBM Company MSFT Place New York 我需要迭代这个结构 检测任何重复项 然后创建沿着每个
  • 单独编译模式下 cuda 代码的 mex 链接

    我正在尝试在 Linux 下的 MATLAB mex 中使用 CUDA 代码 使用 整个程序编译 模式 它对我来说效果很好 我在 Nsight 中执行以下两个步骤 1 将 fPIC 作为编译器选项添加到每个 cpp或 cu文件中 然后分别编
  • C# 类型名称而不是 CLR 类型名称

    typeof int Name 将返回 System Int32 有谁知道返回 int 的方法 C 关键字 int double string 的类型并不多 因此您也许可以编写自己的映射函数 从系统类型名称到相应的 C 关键字
  • Intellij 错误:内部缓存已损坏或格式过时

    当我在 Intellij 中构建 Java 项目时 我间歇性地收到错误 内部缓存已损坏或格式过时 强制项目重建 java io FileNotFoundException C target classes ehcache xml 访问被拒绝
  • 正则表达式误解或只是破坏了实现?

    我尝试了一个非常简单的用法regex search并且不明白为什么我没有得到匹配 唉 gcc C 0x implementations 4 5 似乎不起作用 我收到链接错误here 但这是我的 gcc 4 7 0 尝试 非常简单 inclu
  • 使用 GROUP BY 获取最后的条目

    我在 GROUP BY 方面遇到问题 它返回它可以找到的第一个条目 但我希望它返回最后一个条目 那可能吗 这是我的查询 准备好的查询 SELECT stamp user stamp date stamp type FROM rws stam
  • 如何使用字典替换 Pandas 系列中的多个子字符串?

    我有 Pandas 系列的琴弦 我想对多个子字符串进行多次替换per row see testdf pd Series Mary went to school today John went to hospital today to sub
  • 如何正确插入允许 LD_PRELOAD 链接的 malloc

    我创建了一个共享库 它插入 malloc 和相关调用 效果很好 但有一些注意事项 有一点是行不通的 我期望能够链接插入器 以便我可以运行类似的东西 LD PRELOAD path to mymalloc so usr lib64 jemal
  • Android Studio 0.4 & 黄油刀

    我无法获取 Android Studio 0 4 gradle 项目 和 Jake Wharton 的牛油刀一起玩得好 对视图 应该注入的 ViewPager 的引用始终为空 我尝试启用注释处理 设置 gt 编译器 gt 注释处理器 gt
  • TypeScript 永远不会在条件类型中输入不一致的匹配?

    在下面的代码中 您会注意到类型Result1 is never 但类型test3 is 我无法理解这一点 考虑到他们都在阅读 为什么结果不一样never输入来自MyEvents type EventArgs
  • 将 csv 导入到 JTable

    我有一个 csv 文件 我想将其导入到 JTable 中 有没有一个简单的例子展示如何将csv文件导入到JTable 使用 OpenCSV CSVReader reader new CSVReader new FileReader your
  • 一张图像中的多个 OHLC 数据集

    如何使用 JFreeChart 在一张图像中绘制多个数据集的图表 本质上 我想在一张图像中绘制股票的价格及其移动平均线 我尝试获取 XYPlot 并添加第二个数据集 但它不起作用 DefaultOHLCDataset dataset new
  • 使用分页进行 JavaFX TableView 过滤(一起)

    我做了一些研究表格视图 s Filtering and Pagination分别地 过滤 this帖子根据我的需要帮助了我 分页 this this帖子也帮助了我 I want to combine them together like s
  • `>*` 选择器无法从父组件到子组件工作

    我有以下角度组件 div div
  • 复制命名空间的所有元素,不复制任何其他元素

    我们有一堆 html 页面文件 但其中包含额外的 xml 元素 全部以我们公司名称 TLA 为前缀 为我现在正在重写的旧程序提供数据和结构 表格示例