我使用以下内容:
XElement select = new XElement("select");
XElement optGroup = null;
if (topics.Count() > 0) {
optGroup = new XElement("optgroup", new XAttribute("label", "Admin"));
optGroup.Add(new XElement("option", new XAttribute("value", "99"), new XText("Select Topic")));
optGroup.Add(new XElement("option", new XAttribute("value", "00"), new XText("All Topics")));
select.Add(optGroup);
foreach (var topic in topics) {
// skip root topic
if (!topic.RowKey.EndsWith("0000")) {
// optgroup
if (topic.RowKey.EndsWith("00")) {
optGroup = new XElement("optgroup", new XAttribute("label", topic.Title));
select.Add(optGroup);
}
// option
else if (optGroup != null) {
optGroup.Add(new XElement("option", new XAttribute("value", topic.RowKey), new XText(topic.Title)));
}
}
}
} else {
optGroup = new XElement("optgroup", new XAttribute("label", "Admin"));
optGroup.Add(new XElement("option", new XAttribute("value", "88"), new XText("No Topics")));
}
return (select.ToString());
它处理变量中的行并使用数据为HTML创建<select> ... </select>
元素。
然而,我需要的是<select>
的内容,而不是开场<select>
和结束</select>
元素。有什么方法可以让它只返回内容而不是外部<select>
?
答案 0 :(得分:1)
只需从结果中修剪出你不想要的东西。
return (select.ToString().Replace("<select>","").Replace("</select>",""));
答案 1 :(得分:1)
添加
using System.Xml.XPath;
访问该命名空间中Extensions
类中定义的扩展方法,以获取XPathNavigator
及其InnerXml
属性:
string inner = select.CreateNavigator().InnerXml;