Вы можете использовать XDocument
string xml = ""; /* your xml */
XDocument xDocument = XDocument.Parse(xml);
foreach(XElement questionElement in xDocument.Root.Elements("question"))
{
foreach(XElement optionElement in questionElement.Elements("option"))
{
string text = optionElement.Element("text").Value;
string value = optionElement.Element("value").Value;
/* do something with them here */
}
}
Используя идентификатор атрибута, чтобы связать все полей выбора:
string xml = ""; /* your xml */
XDocument xDocument = XDocument.Parse(xml);
foreach(XElement questionElement in xDocument.Root.Elements("question"))
{
string id = questionElement.Attribute("id").Value;
foreach(XElement optionElement in questionElement.Elements("option"))
{
string text = optionElement.Element("text").Value;
string value = optionElement.Element("value").Value;
/* bind selectbox options here, using id,text,value */
}
}
Используя идентификатор, чтобы связать одно поле выбора:
string id = "title";
string xml = ""; /* your xml */
XDocument xDocument = XDocument.Parse(xml);
XElement questionElement = xDocument.Root.Elements("question").SingleOrDefault(e => e.Attribute("id").Value == "title");
if (questionElement != null)
{
foreach(XElement optionElement in questionElement.Elements("option"))
{
string text = optionElement.Element("text").Value;
string value = optionElement.Element("value").Value;
/* bind selectbox options here, using id,text,value */
}
}
формат XML не исправлен. Есть ли другой формат, который не нуждается в преобразовании XSL? – user
Да, это тот, который был произведен преобразованием XSL. Если он не исправлен, вам нужно будет его исправить или вы не сможете его использовать. Другая возможность - генерировать этот XSL-файл динамически на основе синтаксиса вашего XML-файла, но я бы действительно рекомендовал вам его нормализовать. –
ОК, так что бы XPath соответствовал только значениям: question id = "title" – user