使用 XML 和 XSL

2024-04-02

第一次编辑
我正在获取Child 1标签以 C# 形式放入 DropDownList,请建议用于删除 XML 文件中的父标签及其所有子标签的最佳实践代码 (C#)。 例子:

    <Parents>
      <Parent>
        <Child 1>Something</Child 1>
        <Child 2>Something</Child 2>
        <Child 3>Something</Child 3>
        <Child 4>Something</Child 4>
      </Parent>
      <Parent>
        <Child 1>Something 1</Child 1>
        <Child 2>Something 1</Child 2>
        <Child 3>Something 1</Child 3>
        <Child 4>Something 1</Child 4>
      </Parent>
    </Parents>

--- 上一个问题 ---
如何将以下样式表标签插入到使用 C# 代码创建的新 xml 文件中???

<?xml-stylesheet type="text/xsl" href="issuez.xsl"?>

创建 xml 文件的 C# 代码:-

new XDocument(
                        new XElement("issues",
                            new XElement("issue",
                            new XElement("cat", comboBox1.Text),
                            new XElement("desc", richTextBox1.Text),
                            new XElement("end", dateTimePicker1.Text),
                            new XElement("att", textBox2.Text)
                            )
                        )
                        ).Save(path);

首先,确保 XML 中的日期以规范的 YYYY-MM-DD 格式表示,时间以 HH:MM:SS 表示,以便 XSLT(在 1.0 中没有日期或时间数据类型)可以进行比较并对它们进行排序。

其次,使用 Steve Muench 的分组技术。您可以使用以下命令生成项目日期的密钥xsl:key. The key()然后可以使用函数查找给定日期的所有项目的列表。

使用该键,您可以构建项目中出现的不同日期的列表。这是 Muenchian 技术:查找 key() 针对该项目的日期返回的列表中的第一项的每个项目。此技术可保证您始终为每个不同的日期值获取一个且仅一个项目。然后,您对这些项目进行排序,并使用它们的日期来驱动输出的实际生产。

一个最小的例子:

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

  <xsl:key name="dates" match="/data/newsitem" use="@date"/>

  <xsl:template match="/">
    <output>
      <!-- find exactly one newsitem node for each distinct @date in the document -->
      <xsl:for-each select="/data/newsitem[generate-id() = generate-id(key('dates', @date)[1])]">
        <xsl:sort select="@date" order="descending"/>
        <xsl:call-template name="newsitems_for_date">
          <xsl:with-param name="date" select="@date"/>
        </xsl:call-template>
      </xsl:for-each>
    </output>
  </xsl:template>

  <xsl:template name="newsitems_for_date">
    <xsl:param name="date"/>
    <h1>
      <xsl:value-of select="$date"/>
    </h1>
    <xsl:apply-templates select="/data/newsitem[@date=$date]">
       <xsl:sort select="@time" order="descending"/>
    </xsl:apply-templates>
  </xsl:template>

  <xsl:template match="newsitem">
    <p>
      newsitem for <xsl:value-of select="@date"/>
    </p>
  </xsl:template>

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

使用 XML 和 XSL 的相关文章

随机推荐

  • 隐藏滚动条(启用滚动)

    我有一个包含 2 列和多行的表 table border 0 tr td something td td div class bubble div td tr tr td something1 td td div class bubble
  • OpenCV (cv2) 中的 unactorPoints 与 Python 错误结果

    我尝试纠正图像和该图像上的一些点 校正图像效果非常好 这部分代码不是我提供的 mapx mapy cv2 initUndistortRectifyMap camera matrix dist coefs np array 1 0 0 0 1
  • 内存泄漏 - UIImagePNGRepresentation

    我正在尝试复制图像UIImagePicker到文档目录 我在用 UIImagePickerControllerOriginalImage key 从 UIImagePickerDelegate 的字典中获取原始图像 我正在使用将图像写入文件
  • 为什么我必须将内存地址转换为 (void *)? [复制]

    这个问题在这里已经有答案了 所以我现在只学习了 C 语言大约 3 周 我正在使用this https www youtube com watch v 5BpYD7TxvKU教程帮助我理解指针 我写的一切都和他一样 但我使用 Putty 和
  • 应用程序关闭时访问持久存储

    目前 我正在使用 redux persist 在本地存储数据 我想在应用程序关闭时访问 Persited 商店 就像有新的推送通知时一样 我尝试使用 AsyncStorage 访问存储 结果返回 null if AppState curre
  • 由于环境设置错误,使用 Keras 进行预测失败

    我无法让 Keras 预测任何事情 即使在这个简约的模型中也不行 from keras models import Sequential from keras layers import Dense import numpy as np i
  • 如何修复Python中的selenium“DevToolsActivePort文件不存在”异常[重复]

    这个问题在这里已经有答案了 SOLVED 当我使用两个参数时 headless and user data dir 硒提高selenium common exceptions WebDriverException Message unkno
  • webpack 4.1.1 -> configuration.module 有一个未知的属性“loaders”。

    我刚刚将 webpack 更新为4 1 1当我尝试运行它时 出现以下错误 配置对象无效 Webpack 已使用初始化 配置对象与 API 架构不匹配 configuration module 有一个未知的属性 loaders 这些属性是有效
  • 无法登录 ActiveAdmin

    我在登录 ActiveAdmin 时遇到问题 使用来自的解决方案无法登录活动管理 有什么办法可以创建管理员用户吗 https stackoverflow com questions 20447006 cant log into active
  • 不使用 javascript 设置输入控件焦点[重复]

    这个问题在这里已经有答案了 有没有一种方法可以在不使用 JavaScript 的情况下在特定的 HTML 输入 实际上是文本区域控件 中设置焦点 编辑 在 HTML5 中是可能的 但问题是关于 HTML 您可以使用自动对焦 http www
  • Django MySQL 按天与时区分组

    假设我有一个销售模型 class Sale models Model total models DecimalField max digits 8 decimal places 2 default 0 sale date models Da
  • 如何阻止 PyCharm 填充文档字符串?

    如果我使用三引号将文档字符串添加到方法中 只要我在三引号后键入空格 PyCharm 就会使用该方法采用的参数和返回值填充文档字符串 如下所示 def fill blank self direction param direction ret
  • 如何在“pytest”框架中的固定装置中的“拆卸”中使用测试结果

    我正在尝试使用测试结果或状态来拆卸夹具 但是如果不使用 pytest 框架中的关键字 yield 我将无法找到代码 import pytest import requests pytest fixture def update result
  • TensorFlow Custom Estimator - 在 model_fn 发生微小变化后恢复模型

    我在用tf estimator Estimator为了开发我的模型 我写了一个model fn并训练了 50 000 次迭代 现在我想对我的model fn 例如添加一个新层 我不想从头开始训练 我想恢复 50 000 个检查点的所有旧变量
  • 如何按值(DESC)然后按键(ASC)对字典进行排序?

    就在发现了惊人的事情之后sorted 我又陷入困境了 问题是我有一本以下形式的字典string key integer value 我需要按整数值的降序对它进行排序 but如果两个元素具有相同的值 则按键的升序排列 一个更清楚的例子 d b
  • Flask Unicode 解码错误

    Error UnicodeDecodeError ascii 编解码器无法解码位置 24 中的字节 0xf0 序数不在范围内 128 所以基本上我有一个 Flask 应用程序 用户填写注册表单并呈现一个新页面 这是代码 render tem
  • 使 UIScrollView 以 UITextView 作为子视图获取触摸事件

    我有一个包含 UITextView 不可编辑 的 UIScrollView 我无法使 UIScrollView 获取触摸事件 UITextView 似乎获取并保留它们 知道如何让 UIScrollView 获取触摸事件吗 我希望 UITex
  • 在元素属性内回显?

    我只是想知道是否可以将 php echo 放入 iframe 中 像这样的东西 如果不是 正确的做法是什么 PHP 的工作方式是在发送 HTML 之前在幕后完成工作 因此当您实际将完整数据发送给用户时 它已被解析为应提供给浏览器的内容 也就
  • Jetpack Compose LargeTopAppBar 显示标题两次

    我正在尝试使用 Scaffold 和 LargeTopAppBar 构建 Jetpack Compose 应用程序 我目前有一个非常简单的 UI 只有 Scaffold 中的 LargeTopAppBar 但是当我运行我的应用程序时 我在屏
  • 使用 XML 和 XSL

    第一次编辑我正在获取Child 1标签以 C 形式放入 DropDownList 请建议用于删除 XML 文件中的父标签及其所有子标签的最佳实践代码 C 例子