Tag: xml

XML文档(1,2)中存在错误,System.InvalidOperationException:未被预期

从API发送的XML 0 StringAccessToken StringAccessToken PolarisSampleUser 7 2013-05-27T16:57:46.323 响应类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace PAPIAutomatedTestingTool { [XmlRoot(ElementName=”AuthorizationResult”)] public class AuthorizationResult { public int PAPIErrorCode { get; set; } public string ErrorMessage { get; set; } public string AccessToken { get; set; } public string […]

合并xml文档

我遇到的关于合并XML文档的所有解决方案都达不到我想要的。 让我解释: XML文档1: XML文档2: 进入这样的最终文档: 文档内容相似,但可以具有任意数量的子节点。 我也想消除重复。 我认为重复是具有相同属性的元素(基于属性名称和值)。 有谁见过这个实现的工作示例? 我可以想象如何使用一些循环和一些递归来编写它,但对我来说,这似乎不是实现我想要的最佳方式:) 欢呼并提前谢谢! *编辑* 既然共识是循环和递归是必须的,那么最优雅和有效的方法是什么呢? 我想这个问题的另一个基本问题是在迭代时比较节点的最佳方法是什么?

XmlSerializer更改编码

我正在使用此代码将XML Serialize String : XmlWriterSettings xmlWriterSettings = new XmlWriterSettings { indent = true, Encoding = Encoding.UTF8 }; using (var sw = new StringWriter()) { using (XmlWriter xmlWriter = XmlWriter.Create(sw, xmlWriterSettings)) { XmlSerializer xmlSerializer = new XmlSerializer(moviesObject.GetType(), new XmlRootAttribute(“category”)); xmlSerializer.Serialize(xmlWriter, moviesObject); } return sw.ToString(); } 问题是,我得到: videoid1 title1 有什么方法可以将更改为 ?

如何使用C#读取XML数据

所以这是XML文档: America Italy China 在我的练习中,很容易找到目的地是什么,你只需要制作一个字符串 string xmlString = “Tickets/Ticket/*” 并像这样运行… 但现在… 我怎样才能找到这个的价格和位置: 520 420 320 找到价格很容易,与上面相同(第一个例子)……但是如何找到目标标签内的位置? 我的大学给了我第一个例子的练习,很容易……但是当我参加考试时,它与第二个例子类似……但我不知道该怎么办? 我的考试现在已经很久了,所以这不是“作弊”或其他什么,我只是好奇……请帮帮忙? 🙂 PS:我正在使用Visual Studio 2013 Ultimate并使用C#进行编码并使用控制台应用程序,而不是Windows窗体…好吧,我可以使用表单但是你…控制台更快……

从API到类检索数据的语法代码无法正常工作

我无法从API中检索annonsid,annonsrubic等的值到类annons。 我不知道我缺少什么部分或语法。 private static List myListAnnons = new List(); private static annons _myAnnons = new annons(); using (WebClient client = new WebClient()) { client.Headers.Add(“Accept-Language”, ” en-US”); client.Headers.Add(“Accept”, “application/xml”); client.Headers.Add(“User-Agent”, “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)”); xml = XDocument.Parse(client.DownloadString(“http://api.arbetsformedlingen.se/af/v0/platsannonser/6309046”); } xml.Root.Descendants(“platsannons”).ToList().ForEach(li => { annons _myAnnons = new annons(); _myAnnons.annonsid = li.Element(“annonsid”).Value; _myAnnons.annonsrubrik = li.Element(“annonsrubrik”).Value; […]

如何有条件地避免在WCF中序列化属性?

是否有可能动态避免序列化的属性? 假设我的WCF服务中有这样的方法: public CompositeType GetDataUsingDataContract(CompositeType composite) { return new CompositeType(); } CompositeType的位置如下所示: [DataContract] public class CompositeType { public bool _flag = true; [DataMember] public decimal? Value { get; set; } } 当我调用GetDataUsingDataContract方法时,我正在返回CompositeType对象,然后通过WCF技术将其序列化为XML。 如果_flag = true,是否可以避免序列化的Value属性? 我读到了[XmlIgnore],[IgnoreDataMember]等,但我明白这将始终忽略序列化的属性,我必须忽略只有flag = true。 如果flag = false,我仍然想序列化这个属性。

如何将XElement添加到文档中,避免出现“结构不正确的文档”错误?

// Remove element with ID of 1 var userIds = from user in document.Descendants(“Id”) where user.Value == “1” select user; userIds.Remove(); SaveAndDisplay(document); // Add element back var newElement = new XElement(“Id”, “0”, new XElement(“Balance”, “3000”)); document.Add(newElement); SaveAndDisplay(document); add元素后块是问题所在。 当它到达添加时它指出: 此操作将创建结构不正确的文档。 我犯的是什么愚蠢的错误? 编辑: 是的,我正在阅读XDocument ,而不是XElement 。 关于何时支持其中一个的任何建议?

如何使用多个表从SQL表创建XML / XSD

如何使用多个表从SQL表创建XML / XSD 我想要做的是从数据库(或数据库模式)创建XML模式 这篇文章有一些有趣的代码 尤其 DataSet results = new DataSet(); SqlCommand command = new SqlCommand(“SELECT * FROM table”, new SqlConnection(connectionString)); SqlDataAdapter sqlAdapter = new SqlDataAdapter(command); sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query results.WriteXmlSchema(mySchema); 但是如何从多个表生成此XML架构? 如果我这样做 Select * from table1,table2 所有数据都在XML中的一个大blob中 我想要的是XML中定义的每个表与它的内容分开。 某物

C#XML一次删除更多行,但属性值可以更改

我们必须用C#(windows窗体)编写一个代码,将XML文件加载到richtextbox中。 作品 这就是文本字段的样子: 0 264 48 false 这是我们要删除它的一部分或将值从false设置为true (您选择的更容易): false 这部分代码可以在每个文本字段中找到,但属性ID的值不同。 我们想为每个文本字段删除它。 我们已经有了这个: XDocument xml = XDocument.Load(loadLocation); xml.Descendants().Elements(“Hmi.Screen.Property”) .Where(e => e.Attribute(“Name=”).Value == “FitToLargest”) .Remove(); xml.Save(loadLocation); 我们在stackoverflow上找到它,但是它给出了这个错误: Error 1 A local variable named ‘e’ cannot be declared in this scope because it would give a different meaning to ‘e’, which is already used in a ‘parent […]

validation大型Xml文件

作为转换大型Xml文件的后续问题,我现在需要validation架构。 我正在使用这种扩展方法,由于它也无法正常工作,因此可以明显改进 public static XElement ValidateXsd(this XElement source, string xsdPath) { var errors = new XElement(“Errors”); // Reference: http://msdn.microsoft.com/en-us/library/bb358456.aspx var xsd = XDocument.Load(xsdPath); var xml = XDocument.Load(source.CreateReader()); var schemas = new XmlSchemaSet(); schemas.Add(“”, xsd.CreateReader()); if (xml.Document != null) { xml.Document.Validate(schemas, // Validation Event/Error Handling (sender, e) => { var message = e.Message .Replace( “element is […]