如何将数据从XML序列化到C#.NET
但它显示异常“字符串未被识别为有效的日期时间。”如何将数据从XML序列化到C#.NET,c#,xml,date,C#,Xml,Date,但它显示异常“字符串未被识别为有效的日期时间。” 有人知道如何解决这个问题吗?无需使用XmlConvert或Convert类所需 objCompanyVouchar.VOUCHER_DATE=XmlConvert.ToDateTime(node.SelectSingleNode("DATE").InnerText) objCompanyVouchar.VOUCHER_DATE = Convert.ToDateTime(node.SelectSingleNode("DATE").InnerText
有人知道如何解决这个问题吗?无需使用
XmlConvert
或Convert
类所需
objCompanyVouchar.VOUCHER_DATE=XmlConvert.ToDateTime(node.SelectSingleNode("DATE").InnerText)
objCompanyVouchar.VOUCHER_DATE = Convert.ToDateTime(node.SelectSingleNode("DATE").InnerText);
假设您知道格式为“yyyyMMdd”,那么您需要做的是:
using System;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Serialization;
namespace XMLTest1
{
public class Test
{
public String value1;
public String value2;
}
class listtest
{
static void Main(string[] args)
{
XmlDocument myXml = new XmlDocument();
XPathNavigator xNav = myXml.CreateNavigator();
Test myTest = new Test() { value1 = "Value 1", value2 = "Value 2" };
XmlSerializer x = new XmlSerializer(myTest.GetType());
using (var xs = xNav.AppendChild())
{
x.Serialize(xs, myTest);
}
Console.WriteLine(myXml.OuterXml);
Console.ReadKey();
}
} }
|您可以选择所需的格式,阅读更多信息,请访问
var date= DateTime.ParseExact(node.SelectSingleNode("DATE").InnerText,"yyyyMMdd", CultureInfo.InvariantCulture);
objCompanyVouchar.VOUCHER_DATE= date; //If VOUCHER_DATE is DateTime
//objCompanyVouchar.VOUCHER_DATE = date.ToString(); //If VOUCHER_DATE is String
你好,Jacky,在上面的XML中,partyledgername不止一个。如何找到这两个partyledgernameHi@anisprogrammer您可以使用
SelectNodes
:var pnameNodes=node.SelectNodes(“partyledgername”)
pnameNodes是带有pnameNodes[0]的XmlNodeList。InnerText=“渣打银行”代码>和pnamode[1].InnerText=“XYZ有限公司”代码>
var date= DateTime.ParseExact(node.SelectSingleNode("DATE").InnerText,"yyyyMMdd", CultureInfo.InvariantCulture);
objCompanyVouchar.VOUCHER_DATE= date; //If VOUCHER_DATE is DateTime
//objCompanyVouchar.VOUCHER_DATE = date.ToString(); //If VOUCHER_DATE is String
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
var inportData = doc.Descendants("IMPORTDATA").Select(x => new {
reportName = (string)x.Descendants("REPORTNAME").FirstOrDefault(),
company = (string)x.Descendants("SVCURRENTCOMPANY").FirstOrDefault(),
remoteID = (string)x.Descendants("VOUCHER").FirstOrDefault().Attribute("REMOTEID"),
vchKey = (string)x.Descendants("VOUCHER").FirstOrDefault().Attribute("VCHKEY"),
date = DateTime.ParseExact((string)x.Descendants("DATE").FirstOrDefault(), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture),
voucherName = (string)x.Descendants("VOUCHERTYPENAME").FirstOrDefault(),
voucherNumber = (int)x.Descendants("VOUCHERNUMBER").FirstOrDefault(),
ledgerName = (string)x.Descendants("PARTYLEDGERNAME").FirstOrDefault()
}).FirstOrDefault();
}
}
}