第一次编辑
我正在获取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(使用前将#替换为@)