在尝试使用XmlSerializer.Deserialize()方法反序列化特定的XML文档时,我遇到了一个非常烦人的问题。 基本上,我有一个强类型XSD,其元素类型为double。 当尝试反序列化特定XML文档的元素时,我得到通常的“System.FormatException:输入字符串格式不正确”。 exception,因为在该特定文档中,元素没有值。 这里有一些代码供你书呆子。 示例XML文档: Barcelona 4591 XSD: TrackInfo类: [Serializable] public class TrackInfo { private string name = string.Empty; private double length = 0.0; private double averageSpeed = 0.0; [XmlElement] public string Name { … } [XmlElement] public double Length { … } [XmlElement] public double AverageSpeed { … } } 样本反序列化代码: XmlDocument xmlDocument […]
我一直在读书,但我没有找到解决问题的办法 我目前正在使用一个业务对象来保存我的所有数据,我们需要将此对象转换为XML或从XML转换。 我的对象包含一系列动作(列表…),但有两种动作类型(目前为止)。 我必须操作类型SimpleAction和CompositeAction,它们都从IActioninheritance,允许它们都保存在Actions列表中。 现在您可能会看到问题,因为接口无法序列化,因为它们没有数据。 如何,通过一些示例代码,我是否可以编写获取该对象类型的Class或Serializer,然后使用正确的类型序列化对象? 一些代码: [XmlArray(“Actions”)] public List Actions { get; set; } public interface IAction { int ID { get; set; } ParameterCollection Parameters { get; set; } List Validation { get; set; } TestResultEntity Result { get; set; } string Exception { get; set; } } [XmlType(“A”)] public class SimpleActionEntity : […]
我想根据我的xsd架构(cap.xsd)生成一个xml文件。 我找到了这篇文章,并按照说明操作: 使用XSD文件生成XML文件 我已经在xsd.exe的帮助下创建了这个类,并通过拖放到我的解决方案中插入它 之后,我构建了我的解决方案并创建了xml。 但它不基于xsd架构。 xml文件有一个包含字符的元素,但架构说必须有数字(double) 无论如何,我没有看到xsd架构对生成的xml有什么影响? 如果删除架构,则仍会创建xml文件。 并且在此行创建了xml文件: var data = new Program {Time =“abc”,Source =“443543253243”,}; ..而不是我的架构: 怎么了? 我的课: namespace testapp { using System.IO; using System.Xml.Serialization; public class Program { public string Time; public string Source; public static void Main() { var data = new Program { Time = “abc”, Source = “buffalo”, […]
我正在尝试从Feed中获取未回答的问题列表,但我无法阅读它。 const string RECENT_QUESTIONS = “https://stackoverflow.com/feeds”; XmlTextReader reader; XmlDocument doc; // Load the feed in reader = new XmlTextReader(RECENT_QUESTIONS); //reader.MoveToContent(); // Add the feed to the document doc = new XmlDocument(); doc.Load(reader); // Get the element XmlNodeList feed = doc.GetElementsByTagName(“feed”); // Loop through each item under feed and add to entries IEnumerator ienum = feed.GetEnumerator(); […]
我有一个名为config.xml的独立XML文件,它与我的应用程序一起包含两个部分: 1)全局设置2)服务器列表,包括设置 基本上,全局设置将包含我的程序将用于每个服务器列表的数据库用户名和数据库密码。 服务器列表条目包含服务器列表以及一些文件名,以及数据库用户名和数据库密码。 这里唯一重要的是,如果我在服务器列表中指定用户名/密码,那么它将使用此而不是全局数据库用户名和密码。 或者,换句话说,如果未在servewr列表条目中定义数据库用户名和密码,则它将使用全局数据库用户名密码。 我的程序基本上循环遍历xml配置文件,并针对每个DB2服务器执行一些数据库查询,并处理信息并创建报告。 它今天有效,但我确实有一些问题…… 1)每次我向XML配置文件添加一个新元素时,我必须为我创建的每个节点添加它,否则我会得到XML解析错误。 2)我想要配置我的配置XML文件,而不是把所有东西都放在同一个节点中并包含空元素。 示例XML如下: C:\DATA\Configs\DB2\ DB2ADMIN %SecretPassword% false 127.0.0.1 FTPLogin1 P@ssw0rd /configs Report1 192.168.26.107 SampleData List1.txt Routes1.txt Timeouts1.txt Report1 192.168.26.107 SampleDataB List1.txt Routes1.txt Timeouts1.txt Report2 192.168.26.107 SampleDataE Endpoints2.txt Servers2.txt Groups2.txt Report2 192.168.26.108 SampleDatabase1_D Endpoints2.txt Servers2.txt Groups1.txt 示例代码如下: // load XML file try { // Config/Global System.Xml.XPath.XPathDocument doc = […]
我正在使用POST调用Web服务并接收2MB xml。 问题是我需要花费很多时间才能使用Stream中的数据。 响应似乎是在7秒之后,但是从响应流中读取内容(它是一个字符串)还需要10秒。 Stopwatch s = new Stopwatch(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MyUri); req.Method = “POST”; req.ContentType = “application/x-www-form-urlencoded”; req.ContentLength = Poststring.Length; s.Start(); StreamWriter swriter = new StreamWriter(req.GetRequestStream()); swriter.Write(Poststring); swriter.Close(); // Get the response. 7 sec HttpWebResponse response = (HttpWebResponse)req.GetResponse(); s.Stop(); Debug.WriteLine(“Talking to Web-Service: “+s.ElapsedMilliseconds); s.Reset(); // Get the stream containing content returned by the […]
我有一个xml字符串,在一行中很长。 我想以一种漂亮的缩进格式将xml字符串保存到文本文件中: myAppmyApp.log…… 我喜欢的格式: myApp myApp.log … …. 什么是可用于C#的.Net库?
我正在编写一些处理日志记录xml数据的代码,我希望能够替换文档中某些元素(例如密码)的内容。 我宁愿不序列化和解析文档,因为我的代码将处理各种模式。 样本输入文件: doc#1: jsmith myPword doc#2: jsmith myPword 我希望我的输出是: 输出文档#1: jsmith XXXXX 输出文档#2: jsmith XXXXX 由于我将要处理的文档可能有各种模式,我希望能够找到一个很好的通用正则表达式解决方案,它可以找到带有密码的元素并相应地屏蔽内容。 我可以使用正则表达式和C#解决这个问题,还是有更有效的方法?
有没有办法在.net中获取xml字符串并使其更容易阅读? 我的意思是我可以转换这个: some data 对此: some data 有没有内置的课程? 因为sql server 2005似乎删除了xml上的所有格式以节省空间或某些东西……
BOBBIES COUNTY DEED 2010-02-19T05:14:58 200000.00 200000.00 2560.00 500.00 0.00 0.00 0.00 3060 5.00 0.00 3065 – JANE DOE – JON DOE – 3141614 var affidavits = xDocument.Descendants(“AFFIDAVIT”); var affidavitsTest = xDocument.XPathEvaluate(“/reeta/AFFIDAVIT/COUNTY_NAME”); 以上是我从第三方来源消费的xml。 出于某种原因,我不能用上面描述的任何一种方法解析xml。 任何见解都会非常有用,非常感谢你