我希望在将它发送到客户端之前从XElement中删除我的所有XComment.
从某种原因它不起作用,removeMe.Count()= 0
有什么想法吗?
{
// ...
myXml = XElement.Load(myPath);
var removeMe=myXml.Descendants().Where(x => x.NodeType == XmlNodeType.Comment);
removeMe.Count(); // this is 0 , (not what i was expected)
removeMe.Remove();
//...
string myResponseStr = myXml.ToString(SaveOptions.None);
context.Response.ContentType = "text/plain";
context.Response.Write(myResponseStr);
}
Run Code Online (Sandbox Code Playgroud)
xml文件可以是这样的
<user>
<name> Elen </name>
<userSettings>
<color> blue </color> <!-- the theme color of the page -->
<layout> horizontal </layout> <!-- layout choise -->
<!-- more settings -->
</userSettings>
</user>
Run Code Online (Sandbox Code Playgroud)
Dan*_*rth 10
你需要使用DescendantNodes而不是Descendants.
Descendants返回XElement实例,因此它基本上只返回XML的标记.
DescendantNodes返回XNode包含注释的实例.
doc.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove();
Run Code Online (Sandbox Code Playgroud)
我也会使用DescendantNodes而不是Where调用它就足以使用OfType<XComment>()ie doc.DescendantNodes().OfType<XComment>().Remove().
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |