- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想去掉特定标记的出现,保持内部 XML 完好无损。我想一次完成(而不是搜索、替换并再次从头开始)。例如,来自源:
<element>
<RemovalTarget Attribute="Something">
Content Here
</RemovalTarget>
</element>
<element>
More Here
</element>
我希望结果是:
<element>
Content Here
</element>
<element>
More Here
</element>
我试过这样的事情(原谅我,我是 Linq 的新手):
var elements = from element in doc.Descendants()
where element.Name.LocalName == "RemovalTarget"
select element;
foreach (var element in elements) {
element.AddAfterSelf(element.Value);
element.Remove();
}
但是在第二次循环中我得到一个空引用,大概是因为集合因更改而失效。在可能很大的文档上删除这些标签的有效方法是什么?
最佳答案
您必须通过调用 ToList 来跳过延迟执行,这可能不会影响您在大型文档中的性能,因为您将以比原始文件低得多的大 O 进行迭代和替换搜索。正如@jacob_c 指出的那样,我应该使用 element.Nodes() 来正确替换它,并且正如@Panos 指出的那样,我应该反转列表以便准确处理嵌套替换。
此外,使用 XElement.ReplaceWith ,比您当前在大型文档中的方法快得多:
var elements = doc.Descendants("RemovalTarget").ToList().Reverse();
/* reverse on the IList<T> may be faster than Reverse on the IEnumerable<T>,
* needs benchmarking, but can't be any slower
*/
foreach (var element in elements) {
element.ReplaceWith(element.Nodes());
}
最后一点,在回顾这可能用于什么时,我倾向于同意@Trull 的观点,即 XSLT 可能是您真正要寻找的东西,如果说您要从文档中删除所有 say 标签.否则,请享受这个相当不错且性能相当出色的 LINQ to XML 实现。
关于c# - 从 XML 中去除标 checkout 现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/259883/
我正在尝试在具有多个轴的 matplotlib 上显示悬停标签。 我正在使用 python 3.6.8 和 matplotlib 3.0.3 我的情节有多个轴,我查看了这篇文章中的示例: Possib
我有这个: 1.test fred 5 <i>(9.5h)</i> 我看到的是这样的: 我无法更改跨度标签,它是 fullcalendar 的一部分。我该怎么做才能看到斜体而不
如何制作这个标签单击复选框时出现?现在它是隐藏的。 Bark Bark Hear a dog CSS: .bark{ visibility: hidden } input[type="checkb
我是编码初学者,我需要以下代码的帮助。我正在努力制作“你输了!”标签在计时器为零后出现,但是当我尝试这样做时;它没有显示任何内容。请帮助我! class Game: SKScene { let
实际上,在 api 调用之前,只有 Label 可见且为空文本。获得响应后标签字符计数大于零。但是这里如何等待字符数大于零的标 checkout 现并执行某些操作。 这是我使用的代码,但我收到谓词错误
我正在使用以下 HTML 代码: hr { border: none; border-top: 3px double #333; color: #333; overflow: visi
我想去掉特定标记的出现,保持内部 XML 完好无损。我想一次完成(而不是搜索、替换并再次从头开始)。例如,来自源: Content Here More Her
我正在尝试弄清楚如何让 slider 说出两个不同的内容。我希望 slider 上方的输入以 1.25 美元的二十步表示美元金额(20 到 45 之间)——但我希望实际句柄只说单个整数答案,如 1..
我正在使用 matplotlib 基于数据框制作步骤图,但我希望显示数据框的键/值之一( signals_df['Gage'] ),而不是坐标作为注释,但我总是收到错误:AttributeError:
有什么方法可以让我看到所有标签吗?正在绘制所有点,工具提示正确显示标签和值,但 X 轴上的所有标签都不可见。 最佳答案 是的,有办法。您需要将 x 轴刻度的 autoSkip 属性设置为 false,
我是一名优秀的程序员,十分优秀!