使用 XDocument 解析 xml 将日期转换为日期时间
Parse xml with XDocument convert date to datetime
我的客户 XML 有日期时间字段,但有时只有日期。我需要一个只有日期时间字段而没有日期字段的结果。 (xml 我使用的字段更多并且是嵌套的)
我认为有比我的蛮力尝试更好的方法。
xml = "<root><date>2003-07-15T10:00:00</date><enddate>2016-02-02</enddate><startdate>2000-02-10</startdate></root>";
string result = string.Empty;
if (!string.IsNullOrWhiteSpace(xml))
{
XDocument doc = XDocument.Parse(xml);
string xml1 = doc.ToString();
Regex rgx = new Regex(@">(\d{4}-\d\d-\d\d)</");
result = rgx.Replace(xml1, ">T00:00:00</");
}
你是这个意思吗?
string xml = @"<root><date>2003-07-15T10:00:00</date>
<enddate>2016-02-02</enddate>
<startdate>2000-02-10</startdate>
</root>";
XDocument doc = XDocument.Parse(xml);
DateTime t;
doc
.DescendantNodes()
.Where (d => d.NodeType == XmlNodeType.Text &&
DateTime.TryParse(d.ToString(),out t))
.ToList()
.ForEach( n => n.Parent.SetValue(DateTime.Parse(n.ToString())));
我的客户 XML 有日期时间字段,但有时只有日期。我需要一个只有日期时间字段而没有日期字段的结果。 (xml 我使用的字段更多并且是嵌套的)
我认为有比我的蛮力尝试更好的方法。
xml = "<root><date>2003-07-15T10:00:00</date><enddate>2016-02-02</enddate><startdate>2000-02-10</startdate></root>";
string result = string.Empty;
if (!string.IsNullOrWhiteSpace(xml))
{
XDocument doc = XDocument.Parse(xml);
string xml1 = doc.ToString();
Regex rgx = new Regex(@">(\d{4}-\d\d-\d\d)</");
result = rgx.Replace(xml1, ">T00:00:00</");
}
你是这个意思吗?
string xml = @"<root><date>2003-07-15T10:00:00</date>
<enddate>2016-02-02</enddate>
<startdate>2000-02-10</startdate>
</root>";
XDocument doc = XDocument.Parse(xml);
DateTime t;
doc
.DescendantNodes()
.Where (d => d.NodeType == XmlNodeType.Text &&
DateTime.TryParse(d.ToString(),out t))
.ToList()
.ForEach( n => n.Parent.SetValue(DateTime.Parse(n.ToString())));