Tag: xml

如何以编程方式将XmlNode添加到XmlNodeList

我有一个产品的XmlNodeList,其值被放入表中。 现在,我想在找到某个产品时向列表中添加一个新的XmlNode,以便在同一个循环中,新产品的处理方式与文件中最初的项目相同。 这样,函数的结构不需要更改,只需添加下一个处理的额外节点。 但是XmlNode是一个抽象类,我无法弄清楚如何以编程方式创建新节点。 这可能吗? XmlNodeList list = productsXml.SelectNodes(“/portfolio/products/product”); for (int i = 0; i < list.Count; i++) { XmlNode node = list[i]; if (node.Attributes["name"].InnertText.StartsWith("PB_")) { XmlNode newNode = ???? list.InsertAfter(???, node); } insertIntoTable(node); }

XMLReader是未知的

在此介绍之后,可以通过导入命名空间System.Xml来使用XMLReader类。 在我的Visual Studio项目中,我使用.NET 4.0,但System.Xml未知: 错误1命名空间“系统”中不存在类型或命名空间名称“Xml”(您是否缺少程序集引用?) 在我的代码中,我写道: using System.Xml; 我错过了什么?

在XDocument中定位和设置元素值的最有效方法是什么?

给出以下XML“模板”: {USERNAME} {PASSWORD} {CLIENT-ID} {SERVICE-ID} 使用XDocument,在花括号中设置值的最佳方法是什么。 到目前为止,我已经陷入了选择元素中三个节点中每个节点的最佳方法。 这只是XML的一小部分,其他可能最多包含20个元素。 构建XML的方式不是我的创建,而是我们必须发送给供应商的“网络服务”……在任何人对格式=“计数”属性笑之前:) @David – 为响应欢呼,赞赏。 我有点希望它有点优雅,有点像: List e = doc.Descendants(“a”).ToList(); e.Where(x => x.Attributes(“name”) == “username”).Single().Value = “abc”; e.Where(x => x.Attributes(“name”) == “password”).Single().Value = “abc”; 显然,上面的代码不起作用,但我认为每个标签都会有一个优雅的衬垫

如何从C#中匹配XPath查询的XML文件中获取值

我想知道是否有一种方法使用C#,这使我能够返回匹配给定XPath查询的XML文件中的所有内部值。 假设我们有以下名为exampleWithFruits.xml的Xml文件: 如下所示: string xmlFilePath = “exampleWithFruits.xml”; string xPathQuery = “//fruits/apples//@color” string[] matchingValues = interestingFunction(xmlFilePath, xPathQuery); //for instance we would get something like : matchingValues = {red, red, green, yellow} 总而言之,我想知道如何创建一个像interestingFunction这样的函数 谢谢

在C#中合并两个xml文件而不添加任何内容而不删除任何内容(示例给出)

所以说我有一个这样的xml文件: shape1 和另一个像这样的xml文件: shape 2 我希望输出为: shape1 shape 2 上下文是我正在使用visio架构,但我希望将写入visio xml文件的应用程序的配置文件作为visio配置文件的精简版本。 它应该允许用户更改形状属性,例如“处理”以具有黄色并且它应该允许它们添加新形状,例如应用程序将在使用标准形状之前搜索的“AccountsTable”并使用自定义形状代替某些情况。 在合并方面,如果有意义,它基本上需要将正确的叶子节点粘贴在正确的位置? 除非已明确写入配置文件,否则不覆盖任何内容,例如自定义“形状2”。 我应该怎么看才能实现这一目标? 数据集方法非常无用。 非常感谢!!!

在C#中解析MS Word生成的XML文件

所以我有一个客户端(这可能只来自政府),他们有一堆他们想要输入数据库的MS Word文档,而且没有人工输入,我觉得将它们转换为XML并使用实用程序解析它们会是最好的行动方案。 我有一个实用程序,使用stackoverflow上的代码执行此操作: Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object oMissing = System.Reflection.Missing.Value; DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath(“\\testfiles”)); FileInfo[] wordFiles = dirInfo.GetFiles(“*.doc”); word.Visible = false; word.ScreenUpdating = false; XmlDocument xmlDoc = new XmlDocument(); foreach(FileInfo wordFile in wordFiles) { Object filename = (Object)wordFile.FullName; Document doc = word.Documents.Open(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref […]

混合自定义和基本序列化?

我有一个超过100个属性的类(它是一个数据库映射类),其中一个属性必须在一个方法中。 换句话说,这些数据不是通过属性公开,而是通过以下方法公开: “ABCType GetABC(),SetABC(ABCType值)” 这一切都非常不像C#。 当我看到它时,我不寒而栗。 该类需要是可序列化的,因此可以通过Web服务发送,并且Get / Set方法公开的数据也需要序列化。 (这是一种方法,因为我正在使用的网格使用reflection进行奇怪的操作;它无法处理包含与包含对象相同类型的属性的对象.pronce属性将数据库对象的原始状态存储在需要恢复的情况。执行效率低,是的 – 但我无法对其进行重新设计。) 我的问题是:因为只有这1个字段需要自定义序列化代码,所以我只想使用自定义序列化来调用GetABC和SetABC,恢复到其他类的基本XML序列化。 它可以最大限度地减少序列化代码中的错误。 有办法吗?

从Web api反序列化XML数组

首先,我按照这里给出的答案,但我仍然无法得到以下工作。 我正在从Web API检索XML,返回的结果如下: 000.000 AAA-000/L 01/01/2015 John Doe 000.000 1 Summer 123456 John Doe 2015 000.000 AAA-000/L 01/01/2015 John Doe 000.000 1 Summer 123456 John Doe 2015 我正在尝试将其反序列化为一系列学生。 我的学生class级定义如下: public class Student { [System.Xml.Serialization.XmlElement(“accumulated_tuiton”)] public double AccumulatedTution { get; set; } [System.Xml.Serialization.XmlElement(“net_tuiton”)] public double NetTuiton { get; set; } [System.Xml.Serialization.XmlElement(“course_id”)] public string CourseID { get; […]

C#不会加载某种XML,但可以在浏览器中运行

我是C#的新手(呃),但我有Java和VB.NET的背景,所以跳进很容易。 本周末,我开始使用C#和来自互联网的公共XML提要创建一个新的迷你项目。 但我在加载XML时遇到问题。 这是我的代码: string url = … ; … XmlDocument xmlDoc = new XmlDocument(); … try{ xmlDoc.Load(url); }catch(Exception e){ Console.WriteLine(e); } 当我尝试加载XML时,它会抛出exception: http://sofzh.miximages.com/c%23/Xo2Ra.png (新手无法附上图片,抱歉) 当我的代码不起作用时,我并不感到惊讶。 我通过确定问题所在,开始了标准的故障排除过程。 我完全希望我的代码有问题。 为了测试这个理论,我在网上找到了一个随机的XML feed并将其复制到我的代码中。 令我惊讶的是,装得很好。 现在我的怀疑转移到了目标XML。 它适用于Chrome和FireFox(在.734秒内加载),不需要任何凭据(对公众开放),并且有效/格式良好。 然后我想起了几个月前我写过的一个使用同一个feed的JavaScript。 我解雇了它,并发现它也能完美地工作。 我在这里不知所措,因为我的代码和XML似乎都很好。 有谁知道如何解决这个问题? 我是否需要使用HttpWebRequest并传递给XmlDocument(我不知道该怎么做)? 有没有更多的方法来解决这个问题?

如何使.NET XML解析器不在XML中扩展参数实体?

当我尝试解析下面的xml(使用下面的代码)时,我不断收到&question;&signature; 扩展到 Why couldn’t I publish my books directly in standard SGML? — William Shakespeare. 要么 由于我正在研究XML 3-way Merging算法,我想检索未扩展的&question;&signature; 我试过了: 正常解析xml(这导致扩展的sgml标记) 从xml开头删除Doctype会导致空的sgml标记) 各种XmlReader DTD设置 我有以下XML文件: <!DOCTYPE sgml [ ]> &question;&signature; 这是我尝试过的代码(多次尝试): using System.IO; using System.Xml; using System.Xml.Linq; using System.Reflection; class Program { static void Main(string[] args) { string xml = @”C:\src\Apps\Wit\MergingAlgorithmTest\MergingAlgorithmTest\Tests\XMLMerge-DocTypeExpansion\DocTypeExpansion.0.xml”; var xmlSettingsIgnore = new […]