C# 捕获由特定xml标记包围的所有点
我有一些XML数据需要重新格式化,因为它给了我一个带点的时钟,我想用:代替这些点。 但我只想在“FromTime”到“/ToTime”之间进行,因为它可以在xml中的其他位置有效C# 捕获由特定xml标记包围的所有点,c#,xml,C#,Xml,我有一些XML数据需要重新格式化,因为它给了我一个带点的时钟,我想用:代替这些点。 但我只想在“FromTime”到“/ToTime”之间进行,因为它可以在xml中的其他位置有效 <PresenceData> <Presence> <Date>2020-01-19</Date> <FromTime>15.00.00</FromTime> <ToTime>22
<PresenceData>
<Presence>
<Date>2020-01-19</Date>
<FromTime>15.00.00</FromTime>
<ToTime>22.15.00</ToTime>
<Description>Sunny day.</Description>
</Presence>
<Presence>
<Date>2020-01-28</Date>
<FromTime>15.00.00</FromTime>
<ToTime>22.15.00</ToTime>
<Description>bla bla bla.. bla.</Description>
</Presence>
</PresenceData>
2020-01-19
15.00.00
22.15.00
阳光明媚的一天。
2020-01-28
15.00.00
22.15.00
呜呜呜呜。。布拉。
正则表达式是这里的方法吗?您可以使用。获取该节点的值,并将
替换为:
var xmlDoc = new XmlDocument();
var projectPath = "Path to your xml file";
xmlDoc.Load(projectPath);
var fromNode = xmlDoc.SelectSingleNode("//Presence/FromTime");
if (fromNode != null && !string.IsNullOrEmpty(fromNode.InnerText))
{
fromNode.InnerText = fromNode.InnerText.Replace(".", ":");
}
var toNode = xmlDoc.SelectSingleNode("//Presence/ToTime");
if (toNode != null && !string.IsNullOrEmpty(toNode.InnerText))
{
toNode.InnerText = toNode.InnerText.Replace(".", ":");
}
xmlDoc.Save(projectPath);
您可以使用xml解析器。对于第一个元素(SelectSingleNode),这非常有效——因此只需要一种方法来迭代所有元素。看起来使用xmlDoc.SelectNodes和for循环fromNodes/toNodes是有效的!非常感谢!