我正在尝试在powershell中执行此操作:
XDocument document = XDocument.Load(@"web.config");
var comments = document.Descendants("client").DescendantNodes().OfType<XComment>().ToArray();
foreach (var comment in comments)
{
XElement unCommented = XElement.Parse(comment.Value);
comment.ReplaceWith(unCommented);
}
我尝试过这样的事情:
$xDoc = [System.Xml.Linq.XDocument]::Load("web.config")
[System.Collections.Generic.IEnumerable[System.Xml.Linq.XElement]] $enum = $xDoc.Descendants("client")
$clients = [System.Xml.Linq.Extensions]::DescendantNodes($enum)
但是我收到一条错误说“异常调用带有1个参数的DescendantNodes:value不能为null”
答案 0 :(得分:18)
我使用了powershell中的linq来解决这个问题(从xml文档中取消注释):
[Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq") | Out-Null
$xDoc = [System.Xml.Linq.XDocument]::Load("web.config")
$endpoints = $xDoc.Descendants("client") | foreach { $_.DescendantNodes()}
$comments = $endpoints | Where-Object { $_.NodeType -eq [System.Xml.XmlNodeType]::Comment -and $_.Value -match "net.tcp://localhost:9876/RaceDayService" }
$comments | foreach { $_.ReplaceWith([System.Xml.Linq.XElement]::Parse($_.Value)) }
$xDoc.Save("web.config")
答案 1 :(得分:0)