c# – 使用XML和XSL

c# – 使用XML和XSL,第1张

概述第一次编辑 我正在以C#形式将Child 1标记提取到DropDownList中,Plz建议删除Parent标记&的最佳实践代码(C#).它是 XML文件中的所有子标记. 例: <Parents> <Parent> <Child 1>Something</Child 1> <Child 2>Something</Child 2> <Chi 第一次编辑
我正在以C#形式将Child 1标记提取到DropDownList中,Plz建议删除Parent标记&的最佳实践代码(C#).它是 XML文件中的所有子标记.
例:

<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在项目的日期生成一个键.然后可以使用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>
总结

以上是内存溢出为你收集整理的c# – 使用XML和XSL全部内容,希望文章能够帮你解决c# – 使用XML和XSL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1215854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存