Tag: xml

使用XML文件中的数据/基于模板将XML转换为Word文档生成Word文档(docx)

我有一个XML文件,其中包含我需要在Word文档中填充的数据。 我需要找到一种方法,定义一个模板,该模板可以用作从XML文件填充数据并创建输出文档的基线。 我相信有两种方法可以做到这一点。 创建一个将成为“模板”的XSLT文件,并使用它来与XML文件一起使用它生成Word文档。 使用Word中的内容控件来创建模板文档,并以某种方式映射到XML文件。 我只是不知道如何实现这两种方式的细节。 或者不确定是否有另一种更简单的方法来完成此任务。 有人可以举例说明如何实现这一点。 只是一个简单的例子就足够了。 对于任何编码,我更喜欢C#。 我正在使用Word 2016,但希望它从Word 2007到Word 2016兼容,如果可能的话,因为用户将使用这些版本。 谢谢!

如何将XML节点的内容保存到字符串?

我有和这样的XML: http://sofzh.miximages.com/c%23/example.jpg http://sofzh.miximages.com/c%23/example.jpg http://sofzh.miximages.com/c%23/42566323.png http://sofzh.miximages.com/c%23/example.jpg …我想提取并保存…作为字符串。 我的目标是获取提取元素的子文本节点。 例如http://sofzh.miximages.com/c%23/42566323.png 。 我试过了 XmlNodeList xnList = xml.SelectNodes(“image[@size=’large’]”); foreach (XmlNode xn in xnList) { ….. } ……但我迷路了。 做我需要做的最好的方法是什么?

在C#中为jQuery创建XML

我正在尝试为jQuery.get(AJAX)调用生成一些XML,并且我从C#页面收到以下错误: “使用主题css文件需要页面上的标题控件。(例如 )。“ 生成XML的文件是一个简单的.aspx文件,完全由以下部分组成: 使用Linq-to-XML进行代码隐藏,工作正常: XElement xml = new XElement(“People”, from p in People select new XElement(“Person”, new XAttribute(“Id”, p.Id), new XElement(“FirstName”, p.FirstName))); HttpContext.Current.Response.ContentType = “text/xml”; HttpContext.Current.Response.Write(xml.ToString()); 我知道该错误与Web.Config的标记有关,因为当我删除’styleSheetTheme’和’theme’属性时,XML生成正常。 那么问题显然是每个其他页面都失去了它的样式。 所有这些让我觉得我正在接近这个错误。 我的问题是:在C#中生成XML的可接受方式是什么,供jQuery AJAX调用使用,比如说?

使用.NET XML序列化在其他元素中包装序列化属性

我使用C#+ VSTS2008 + .Net 3.0来进行XML序列化。 代码工作正常。 下面是我的代码和当前序列化的XML结果。 现在我想在输出XML文件中添加两个附加层。 这是我期望的XML结果。 有什么简单的方法吗? 我不确定NestingLevel是否可以帮助这样做。 我想找到一种不会改变MyClass和MyObject结构的简单方法。 预期的XML序列化结果, Foo 当前的XML序列化结果, Foo 我目前的代码, public class MyClass { public MyObject MyObjectProperty; } public class MyObject { public string ObjectName; } public class Program { static void Main(string[] args) { XmlSerializer s = new XmlSerializer(typeof(MyClass)); FileStream fs = new FileStream(“foo.xml”, FileMode.Create); MyClass instance […]

使用c#中的复杂元素进行Xml反序列化

我的xml字符串反序列化到我的对象有一些麻烦。 我没有得到任何错误,但值没有填充(值不为null它们只是”” )。 我看了几个有同样问题的问题,但这些问题通常包括没有定义[XmlRoot]或[XmlElement] 。 这是我的一些xml字符串: string xmlString = @”” 这是deseralize的function: StandardAddress address = new StandardAddress(); using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { try { address = (StandardAddress)new XmlSerializer(typeof(StandardAddress)).Deserialize(reader); } catch (InvalidOperationException x) { // String passed is not XML, simply return defaultXmlClass } } return address; 这是一个对象声明: [XmlRoot(“results”)] public class StandardAddress { [XmlElement(ElementName = […]

读取具有未知根/父节点的XML节点时出现问题

我一直在尝试读取xml文件。 我必须提取节点“Date”和“Name”的值,但问题是,它们可能出现在XML层次结构中的任何级别。 所以,当我尝试使用此代码时, XmlDocument doc = new XmlDocument(); doc.Load(“test1.xml”); XmlElement root = doc.DocumentElement; XmlNodeList nodes = root.SelectNodes(“//*”); string date; string name; foreach (XmlNode node in nodes) { date = node[“date”].InnerText; name = node[“name”].InnerText; } 和XML文件是:: Aravind 12/03/2000 上面的代码错误输出,因为和不是root的直接子元素。 是否有可能假设父/根节点是未知的,只是用节点的名称,复制值?

计算与xsd(C#)中的正则表达式匹配的字符串的最大可能长度

我正在使用XSD,我可以从XSD访问模式作为字符串。 一个例子: 给了我C#字符串 string pattern = “[0-9]{8}”; 从我从XSD(可能是任何有效的XSD模式条目)获得的模式字符串,我试图找出XML中字段的内容可能的最大可能长度。 在这个简单的例子中,它显然是8 – 我可以通过检查{n}并假设它是长度来解决这个问题。 在其他模式中,我也可以检查*或+并假设无限制 – 但我正在寻找可用于执行此操作的更通用的方法。 请注意,模式字符串不保证与.Net的Regex类兼容。 我也可以访问XmlSchemaPatternFacet类,这是我用来解析XSD的第一个地方,如果有任何帮助的话。 谢谢你提供的所有帮助

使用SerializableDynamicObject进行动态排序

我需要根据运行时确定的标准对这些集合进行排序。 我使用本文中的代码来执行排序 – 最初我的代码使用了动态类。 然后我遇到了通过WCF进行序列化的问题,所以我切换到使用SerializableDynamicObject ,现在排序代码中断了: PropertyInfo pi = type.GetProperty(prop); 具有Seri​​alizableDynamicObject没有名为“Name”的属性的错误 – 其中“Name”是prop的值。 我想最简单的方法是找到一种序列化排序算法的动态类型的替代方法。 任何指向这个方向将不胜感激! 我看过这个例子,但是收到错误信息: The constructor with parameters (SerializationInfo, StreamingContext) is not found in ISerializable type

将非常大的文件从xml转换为csv

目前我正在使用以下代码片段将带有XML数据的.txt文件转换为.CSV格式。 我的问题是,目前这适用于大约100-200 mbs的文件,并且转换时间非常短(最多1-2分钟),但是我现在需要它来处理更大的文件(每个1-2 GB)文件)。 目前该程序冻结了计算机,使用此function转换大约需要30-40分钟。 不知道我将如何继续更改此function。 任何帮助将不胜感激! string all_lines = File.ReadAllText(p); all_lines = “” + all_lines + “”; XmlDocument doc_all = new XmlDocument(); doc_all.LoadXml(all_lines); StreamWriter write_all = new StreamWriter(FILENAME1); XmlNodeList rows_all = doc_all.GetElementsByTagName(“XML”); foreach (XmlNode rowtemp in rows_all) { List children_all = new List(); foreach (XmlNode childtemp in rowtemp.ChildNodes) { children_all.Add(Regex.Replace(childtemp.InnerText, “\\s+”, ” “)); } […]

使用linq合并具有相同结构的多个XML文件,并根据键删除重复项

我有多个XML文件,我正在尝试合并到一个文件中。 Linq to XML可能是最好的选择,但我对创意持开放态度(XSLT似乎很擅长合并两个文件,但在n> 2或n = big时很笨拙)。 从这里阅读其他问题,某种联系看起来很好。 File1.xml: File2.xml: Merged.xml: 即它根据第三个/ @id属性合并值。 我如何用linq优雅地做到这一点?