C# 混淆我的Xpath表达式应该是什么?
下面给出了我的categories.xml文件C# 混淆我的Xpath表达式应该是什么?,c#,asp.net,.net,xml,xpath,C#,Asp.net,.net,Xml,Xpath,下面给出了我的categories.xml文件 <categories> <root name="Cars -Vehicles" id="CV"></root> <root name="Personals" id="PER"></root> <root name="Real Estate" id="RE"></root> <root name="Property For Rent" id="
<categories>
<root name="Cars -Vehicles" id="CV"></root>
<root name="Personals" id="PER"></root>
<root name="Real Estate" id="RE"></root>
<root name="Property For Rent" id="PFR"></root>
<root name="Community" id="COM"></root>
</categories>
<attributes>
<attribute value="ethnicity=ethnicity_african_american" name ="American Indian" categoryid="PER"/>
<attribute value="ethnicity=ethnicity_asian_pacific_islander" name ="Asian - Pacific Islander" categoryid="PER"/>
<attribute value="ethnicity=ethnicity_caucasian" name ="Caucasian" categoryid="PER"/>
<attribute value="amenities=amenities_ac" name ="AC" categoryid="RE, PFR"/>
<attribute value="amenities=amenities_alarm" name ="Alarm" categoryid="RE, PFR"/>
</attributes>
protected void ddCategories_SelectedIndexChanged(object sender, EventArgs e)
{
XmlDataSource xd = new XmlDataSource();
xd.DataFile = Server.MapPath("Xmls") + "\\attributes.xml";
xd.XPath = "/attributes/attribute[@categoryid='" +
categoriesDropDown.SelectedValue.ToString() + "']";
attributeDropdown.DataSource = xd;
attributeDropdown.DataTextField = "name";
attributeDropdown.DataValueField = "value";
attributeDropdown.DataBind();
// categoriesDropDown.DataTextField = "name";
// categoriesDropDown.DataValueField = "id";
}
现在的问题是名为AC和Alarm的两个属性分为两类房地产和出租房地产。如何在选择这些类别时绑定这些属性
如果属性在多个类别中,我的Xpath表达式应该是什么?也许这不是一个好的解决方案,但您可以使用
包含函数,例如:
/attributes/attribute[contains(@categoryid, 'category')]
根据您的代码:
xd.XPath = string.Format("/attributes/attribute[contains(@categoryid, '{0}')]",
categoriesDropDown.SelectedValue);