【发布时间】:2013-01-04 13:53:12
【问题描述】:
是否可以在不循环遍历每个节点的情况下从 XML 节点值中修剪前导和尾随空格。
例如,<someElement> value here </someElement> 将变为 <someElement>value here</someElement>
以下代码执行此操作,但我不想遍历每个节点,这会影响性能:
if (node.ChildNodes.Count == 0)
node.InnerText = node.InnerText.Trim();
else
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
TrimLeadingOrTrailingSpacesFromNodeValue(node.ChildNodes[i]);
}
}
有没有更好的方法? LoadOptions.PreserveWhitespace 不是我要找的,我需要修剪 XML 节点中的值。
【问题讨论】:
-
好吧,您可以使用 linq to xml,但本质上它也会循环,因此不会增加太多性能。答案已在另一篇文章中描述:stackoverflow.com/questions/6851247/…
-
除非您处理大吞吐量,否则我不会说性能下降会是一个问题。在您自己的代码中没有该功能将是主要收获,因为您不必维护它。 (我也不明白为什么这个问题被否决了)