为下拉框创建带有变量的 XML 文件

Posted

技术标签:

【中文标题】为下拉框创建带有变量的 XML 文件【英文标题】:create XML file with variables for drop down box 【发布时间】:2021-10-22 10:22:44 【问题描述】:

我创建了一个 XML 文件,并且可以成功地使用该信息来创建一个下拉列表。我想要实现的是从 stringResource 文件中添加变量以创建下拉列表的值。

我的原始 XML 文件是:

<root>
<row>
  <var name="--Select--"/>
</row>
<row>
  <var name="Agriculture"/>
</row>
<row>
  <var name="Airline"/>
</row>
<root>

在尝试添加变量时,我尝试了以下方法:

<PackageTransform>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:aspdnsf="urn:aspdnsf" exclude-result-prefixes="aspdnsf">
    <xsl:output method="html" omit-xml-declaration="yes" />

    <xsl:template match="row">

    <xsl:param name="pReplacement" select="'Something Different'"/>
        
        <root>
            <row>
                <xsl:value-of select="aspdnsf:StringResource('industry.cs.1')"/>
            </row>
            <row>
                Air
            </row>
            <row>
                <xsl:value-of select="$pReplacement" />
            </row>
        </root>
        
    </xsl:template>

</xsl:stylesheet>

我的工作代码,原始 XML 文件是:

            XmlNodeList industrylist = XmlDoc.GetElementsByTagName("row");
        foreach (XmlNode Node in industrylist)
        
            string industry = Node["var"].Attributes["name"].Value;
            _cboIndustryType.Items.Add(new ListItem(industry));
        

使用顶部 XML 文件,我的下拉列表正确列出了所有名称:

    --选择-- 农业 航空公司

我无法将属性名称设置为变量,因此我更改了代码以查找节点 innerXML,如下所示:

                XmlNodeList industrylist = XmlDoc.GetElementsByTagName("row");
        foreach (XmlNode Node in industrylist)
        
            string industry = Node.InnerXml;
            _cboIndustryType.Items.Add(new ListItem(industry));
        

但经过多次尝试(例如第二个 XML 文件)后,我无法让变量正确显示。我看到以下列表:

    李> 空气

如果有人能告诉我我在这里做错了什么,我将不胜感激。

提前致谢!

【问题讨论】:

可能你在一个步骤中尝试了太多。将下拉框的 XML 文件的使用与通过 XSLT 生成 XML 分开。问题出在哪方面? 【参考方案1】:

我想出了一个方法来做我想做的事。

我刚刚编写了 2 个不同的 XML 文件,每种语言一个,然后更改了代码以根据语言环境选择合适的文件。

            if (Customer.Current.LocaleSetting.Contains("es"))
            XmlDoc.Load(CommonLogic.SafeMapPath("~/XmlPackages") + "\\industry.drop.down.list.es-MX.xml.config");
        else
            XmlDoc.Load(CommonLogic.SafeMapPath("~/XmlPackages") + "\\industry.drop.down.list.xml.config");

        XmlNodeList industrylist = XmlDoc.GetElementsByTagName("row");
        foreach (XmlNode Node in industrylist)
        
            string industry = Node.InnerXml;
            _cboIndustryType.Items.Add(new ListItem(industry));
        

谢谢!

【讨论】:

以上是关于为下拉框创建带有变量的 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

雷林鹏分享:jQuery EasyUI 表单 - 创建树形下拉框

下拉框(Spinner)

带有选项输入字段的下拉列表

html如何创建一个下拉框包含年月日?

Excel 下拉框是不是可以作为带有多选复选框的列表框?

php和javascript中的下拉框