【问题标题】:Filtering the XML Node binded with dropdownlist过滤与下拉列表绑定的 XML 节点
【发布时间】:2012-05-07 21:11:00
【问题描述】:

我有两个 DropDownList: 1) CollegeDDL,其中包含四个学院的静态名称。 : 顺势医学院、理疗学院、阿育吠陀学院、工商管理学院

2) CourseDDL,绑定到 CourseDetail.XML。

    <Institutes>  
    <Institute>
    <InstituteName>  Homoeopathic Medical College  </InstituteName>
    <Course> <CourseName>  BHMS                    </CourseName> </Course>  
    <Course> <CourseName>  MD(Repertary)           </CourseName> </Course>  
    <Course> <CourseName>  MD(Organon of Medicine) </CourseName> </Course>  
    <Course> <CourseName>  MD(Materia Medica)      </CourseName> </Course>  
    </Institute>

    <Institute>
    <InstituteName>  Physiotherapy College  </InstituteName>
    <Course> <CourseName>  BPT          </CourseName> </Course> 
    <Course> <CourseName>  BPT(Sports)  </CourseName> </Course> 
    <Course> <CourseName>  BPT(Cardio)  </CourseName> </Course>
    </Institute>

    <Institute>
    <InstituteName>  Institute of Ayurved  </InstituteName>
    <Course> <CourseName>  BAMS          </CourseName> </Course>
    <Course> <CourseName>  BAMS(Nature)  </CourseName> </Course>
    <Course> <CourseName>  BAMS(Plants)  </CourseName> </Course>
    </Institute>

    <Institute>
    <InstituteName> Institute of Business Administration </InstituteName>
    <Course> <CourseName>BBA</CourseName> </Course> 
    <Course> <CourseName>DBM</CourseName> </Course> 
    <Course> <CourseName>BBA(Distance)</CourseName> </Course>   
    </Institute>

CourseDetail.XSL

    <xsl:template match ="/">

    <Institute>
    <xsl:apply-templates select ="Institutes/Institute/Course"/>
    </Institute>

    </xsl:template>


    <xsl:template match ="Institutes/Institute/Course">
    <Institute>
    <xsl:attribute name="CourseName">
    <xsl:value-of select="CourseName"/>
    </xsl:attribute>
    </Institute>

    </xsl:template>

我已将 Coursedetail.XML 绑定到 CourseDDL 和 CourseDetail.XSL(无 XPATH 表达式)

完成此操作后,My CourseDDL 将正确填充我的 XML 文件的所有 CourseName 值。 但现在我想根据在 CollegeDDL 中选择的大学名称过滤绑定到 CourseDDL 的数据。

例如:目前我的 CourseDDL 包含所有 CourseName : BHMS,MD(Repertary),MD(Organon of Medicine),......,DBM,BBA(Distance)。

但是当我在 CollegeDDL 中选择“顺势医学院”时,绑定到 CourseDDL 的数据应该相应地过滤。 这意味着当我选择“顺势医学院”时,我的 CourseDDL 应该只显示该课程:BHMS,MD(Repertary),MD(Organon of Medicine),MD(Materia Medica)


我尝试了以下方法,但无法实现。

    1) XmlDataSourceCourse.XPath = "/Institutes/Institute[InstituteName='" +         CollegeDDL.SelectedItem.Value + "']"

    2) XmlDataSourceCourse.XPath = "/Institutes/Institute[InstituteName='" +         CollegeDDL.SelectedItem.Value + "']/Course"

    3)XmlDataSourceCourse.XPath = "/Institutes/Institute[InstituteName='" + CollegeDDL.SelectedItem.Value + "']/Course/CourseName"

请任何人帮助格式化正确的 XPATH 表达式以实现此目的。

【问题讨论】:

  • 也许是空格?你试过/Institutes/Institute[normalize-space(InstituteName)='&lt;your value goes here&gt;']

标签: xslt xpath filtering xmldatasource


【解决方案1】:

我认为 Pavel 是对的,问题在于空格 - 尝试:

/Institutes/Institute[normalize-space(InstituteName)='" + CollegeDDL.SelectedItem.Value + "']/Course/CourseName

甚至

/Institutes/Institute[normalize-space(InstituteName)=normalize-space('" + CollegeDDL.SelectedItem.Value + "')]/Course/CourseName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多