XSLT 增强 Hadoop 配置

2024-04-21

什么是可以根据名称添加或替换属性值的 XSLT(版本 1.0)转换?

例如,给定以下输入 XML

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/hadoop/dfs/name</value>
    </property>
</configuration>

我如何指定两个具有名称和值的属性,例如:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/hadoop/dfs/data</value>
    </property>
</configuration>

因此生成的 XML 包含根的所有原始子级configuration元素,并且只有一个property与给定的name?例如:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/hadoop/dfs/name</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/hadoop/dfs/data</value>
    </property>
</configuration>

我尝试过其他几个问题的示例,但它们没有相同的架构,而且我不知道足够的 XSLT 来适应我的用例。


Given:

输入 XML

<configuration>
    <property>
        <name>A</name>
        <value>old A</value>
    </property>
    <property>
        <name>B</name>
        <value>old B</value>
    </property>
</configuration>

覆盖.xml

<configuration>
    <property>
        <name>B</name>
        <value>new B</value>
    </property>
    <property>
        <name>C</name>
        <value>new C</value>
    </property>
</configuration>

以下样式表:

XSLT 1.0

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

<xsl:param name="override-path" select="'override.xml'" />
<xsl:variable name="override-properties" select="document($override-path)/configuration/property" />

<xsl:template match="/configuration">
    <xsl:copy>
        <!-- copy local properties not overridden by external properties -->
        <xsl:copy-of select="property[not(name=$override-properties/name)]"/>
        <!-- add all overiding properties -->
        <xsl:copy-of select="$override-properties"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

将返回:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <property>
      <name>A</name>
      <value>old A</value>
   </property>
   <property>
      <name>B</name>
      <value>new B</value>
   </property>
   <property>
      <name>C</name>
      <value>new C</value>
   </property>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT 增强 Hadoop 配置 的相关文章

  • 如何用 Java 从 XML 创建 PDF?

    目前 我正在 Java 中创建一个 XML 文件 并通过使用 XSL XSLT 对其进行转换来将其显示在 JSP 页面中 现在我需要获取该 XML 文件并在 PDF 中显示相同的信息 有没有办法通过使用某种 XSL 文件来做到这一点 我见过
  • XSLT 增强 Hadoop 配置

    什么是可以根据名称添加或替换属性值的 XSLT 版本 1 0 转换 例如 给定以下输入 XML
  • XSLT:提取唯一属性值

    请帮忙 我是 XSLT 新手 我正在尝试将一种 XML 格式转换为另一种格式 我需要提取唯一的属性值并将这些值转换为新的格式 下面的示例 XML 显示了原始格式和新 目标格式 我花了很长时间尝试这样做 但没有任何乐趣 有人可以帮忙或给我一些
  • 有没有办法让 webkit 的 javascript 正确处理空格?

    事实证明 在处理 XSLT 时 webkit 对于空格的处理似乎并不是特别好 它似乎对换行符 回车符 制表符和空格一视同仁 甚至到了这样的地步 substring after test string 10 将返回string 有什么方法可以
  • XSD 到 XForms 以及 XForms 到 XSD 转换

    目前我正在努力解决两个问题 我从外部服务器接收到一个 XSD 文件 并且基于该文件我必须生成 XForm 通常 XSD 文件会导入许多其他 XSD 文件等等 我正在使用 XForm 构建器编写 GUI 当用户构建他的自定义 XForm 时
  • 我可以为 XPath 中缺失的标签创建一个值吗?

    我有一个使用 XPath 从 XML 文件中提取数据的应用程序 如果该 XML 源文件中的节点丢失 我想返回值 N A 很像 Oracle NVL 函数 问题在于该应用程序不支持 XSLT 我想使用 XPath 和单独使用 XPath 来完
  • 按预定义顺序进行 XSLT 节点转换

    如何使转换遵循 xml 节点顺序 xml文件是这样的
  • 在 Visual Studio 中使用 Saxon .NET XSLT 处理器无法与智能感知配合使用

    我正在使用开源撒克逊 XSLT 处理器 http saxon sourceforge net 让 NET 执行一些 2 0 转换 我像引用任何其他 dll 一样引用 saxon9api dll 并且可以针对它编译代码 然而 Visual S
  • 连接 XML 中多个节点的值 - 使用 XSLT

    这是测试 XML 而不是原始 XML 我需要仅提取 bloggrs 块中存在博客 ID 的博客网站 是否可以仅使用 XSLT 我认为不是
  • XSLT 是 Web 框架的好选择吗?

    我一直认为 XML 以及之前的 SGML 数据是魔鬼的格式 我是旧数据库和平面文件学校的 尽管如此 我们正在开发一款商用网络产品 其框架基于在链中翻译 转换 XML 数据 当我们面试职位以及与潜在客户交谈时 他们喜欢它将做什么的概念 但厌倦
  • 我如何不在我的 xslt 代码中重复重复的逻辑?

    编写此代码的更好方法是什么
  • XSLT 2.0 中的简洁正则表达式提取功能

    我可以从 XSLT 2 0 文档中看到最好的结果 或者至少从我在这些地方读到的内容中看到 Saxon 分析字符串函数 http www saxonica com html documentation xsl elements analyze
  • XSLT:如何防止 XSLT 代码在输出 xml 中生成冗余空格

    使用我的 XSL 代码 每当我删除一个元素 它都会在输出 xml 中引入一个空白行空间 这会妨碍树形结构外观XML的 你能建议我 如何摆脱它 这是示例代码示例 XML 示例
  • XSLT key() 查找

    我正在尝试 XSLT 中的查找表示例 但无法使其工作
  • 在 PHP 5 中使用 Schematron 验证 XML

    我在验证 XML 时遇到问题图解器 http en wikipedia org wiki Schematron 在我的代码中 我将 XML 和 XSL 作为 DOMDocument 对象加载 并尝试进行转换 domSche new DOMD
  • 编写 XSLT 分组

    我有一个简单的 XML 其中包含两个级别 标题和行 标签 例如
  • 如何在 xslt 2.0 中解析字符串到日期

    是否可以像这样转换字符串30042013 2013 年 4 月 30 日 日期格式 所以我可以稍后在类似的函数中使用它format date 就像托马拉克说的 你可以使用substring and concat 要构建一个字符串 您可以将其
  • 如何去除 XSL 中字符的重音符号?

    我一直在寻找 但找不到相当于字符 规范化空间 的 XSL 函数 也就是说 我的内容带有重音 UNICODE 字符 这很好 但是从该内容中 我正在创建一个文件名 但我不想要这些重音 那么 是否有一些我忽略的东西 或者没有正确地谷歌搜索来轻松处
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • 我可以在 XSLT 中创建模板吗?

    我想使用 XSLT 从 XML 创建 ASP NET 用户控件 目前我真的把结果一点一点地拼凑起来

随机推荐