Tag: xml

加载XDocument时是否可以使用预定义的命名空间?

我经常需要处理包含命名空间元素的XML文档,但不会声明命名空间。 例如: 由于前缀“a”从未分配名称空间URI,因此该文档无效。 当我使用以下代码加载这样的XML文档时: using (StreamReader reader = new StreamReader(new FileStream(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { doc = XDocument.Load(reader, LoadOptions.PreserveWhitespace); } 它抛出一个exception,说明(正确地)该文档包含一个未声明的命名空间,并且格式不正确。 那么,我可以预先定义默认名称空间前缀 – >名称空间URI对,以便解析器可以依赖吗? XMLNamespaceManager看起来很有前途,但不知道如何将它应用于这种情况(或者如果我可以)。

如何更改默认的ASP.NET MVC Web API媒体格式化程序?

我有一个Web API项目,它返回一些产品数据。 它根据请求的Accept标头(JSON / XML)正确协商返回类型。 问题是,如果没有指定Accept头,则返回JSON,但我希望它默认返回XML。 如何更改Global.asax中的内容协商默认值?

使用HtmlAgilityPack获取i帧源

我想在html doc上获取所有iFrame源URL。 我尝试使用带有xpath的HtmlAgilityPack – 但我似乎没有得到一个源列表。 HtmlAgilityPack.HtmlDocument myHtml= new HtmlDocument(); myHtml.LoadHtml(htmlString); foreach (HtmlNode framesrc) in myHtml.DocumentNode.SelectNodes(“//iframe/src”)) { srcCollection.add(framesrc); } 我的xpath错了吗? 谢谢!

xsi:type属性搞乱了C#XML反序列化

我使用XSD.exe根据XML模式(.xsd文件)自动生成C#对象。 我正在反序列化OpenCover输出,但其中一个部分类没有正确生成。 这是导致exception的行: 这是MethodPoint类的缩短版本: [System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”, “4.0.30319.33440”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] public partial class CoverageSessionModulesModuleClassesClassMethodsMethodMethodPoint { private string vcField; private string uspidField; private string ordinalField; private string offsetField; private string slField; private string scField; private string elField; private string ecField; private string becField; private string bevField; private string fileidField; } 现在我已经浏览了很多.xml文件,但OpenCover输出文件是唯一一个在属性中包含冒号的文件。 MethodPoint对象也是唯一包含属性冒号的对象。 如您所见,该类不包含xsi:type属性,我知道只是添加它将因冒号而无效。 你如何处理xsi前缀? 这是从其中一个OpenCover XML文件生成的原始.xsd

XmlSerializer – 将不同的元素反序列化为相同元素的集合

我有以下XML部分,我无法更改架构。 NUMBER,REGION,MENTION,FEDERAL是列: 我想将它反序列化为public List Columns {get;set;}属性。 因此元素名称将转到Column.Name。 列类: public class Column { //Name goes from Element Name public string Name {get;set;} [XmlAttribute(“WIDTH”)] public int Width {get;set;} } 是否可以使用XmlSerializer类?

从URL读取xml

这就是我到目前为止所拥有的。 我试图从URL读取XML,并获得例如温度,湿度……等等。但每次我尝试别的东西它都会给我一个错误。 我想检索信息并将其放在标签中。 namespace WindowsFormsApplication1 { public partial class Form1: Form { public Form1() { InitializeComponent(); } private void btnSubmit_Click(object sender, EventArgs e) { String zip = txtZip.Text; XmlDocument weatherURL = new XmlDocument(); weatherURL.Load(“http://api.wunderground.com/api/” your_key “/conditions/q/” + zip + “.xml”); foreach(XmlNode nodeselect in weatherURL.SelectNodes(“response/current_observation”)); } } }

如何使用C#从XML文件中删除节点

可能重复: 如何从XmlNodeList中删除XmlNode 嗨,我如何从XML文件中删除一组节点。 这是一段代码片段。 string path = @”C:\Documents and Settings\e454935\Desktop\NUnitSettings.xml”; FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument(); xmldoc.Load(fs); fs.Close(); xmldoc.DocumentElement.RemoveChild(xmldoc.DocumentElement.ChildNodes[1]); FileStream WRITER = new FileStream(path, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); xmldoc.Save(WRITER); WRITER.Close(); 我尝试了以下代码只是为了删除一个节点并得到“对象引用未设置为对象的实例”。 在 xmldoc.DocumentElement.RemoveChild(xmldoc.DocumentElement.ChildNodes[1]); 这是一个示例XML文件, 实际上从这个文件我想删除具有值“a,b,c,d”的四个File1节点 ,然后我想添加一个节点 , 我怎样才能做到这一点。?

当我的所有.XSD存储为资源时,如何解析.XSD的schemaLocation属性?

我正在开发一个项目,我需要根据嵌套的XSD生成XML文件。 例如,ORDER引用了PERSON,PERSON引用了ADDRESS等。 我正在创建一个`XmlReaderSettings’实例来validationXSD,并在生成后validationXML。 我已将XSD作为资源添加到我的程序集中。 然后,我为每个资源创建一个XmlSchema实例,从最低到最高,并将其添加到XmlReaderSettings.Schemas集合。 但是,尝试添加引用另一个架构的架构时失败。 我得到一个XmlSchemaException:“对于元素声明,必须存在name或ref属性。” 我在下面提供了示例XSD和源代码: ADDRESS.xsd – 由PERSON.xsd引用 PERSON.xsd 示例代码 – 加载并validationXSD using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Schema; using SchemaTest.Properties; namespace SchemaTest { class Program { static void Main(string[] args) { // create validation settings instance var xmlReaderSettings = new XmlReaderSettings { ValidationType = ValidationType.Schema, ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema […]

由于格式化,XML反序列化在十进制解析时崩溃

当我尝试将XML解析为对象时,我得到一个System.FormatException。 据我所知,这是由于System.Xml.Serialization.XmlSerializer.Deserialize中使用的文化,期望一个点作为十进制字符,但xml包含一个逗号。 该对象如下所示: public sealed class Transaction { [XmlElement(“transactionDate”)] public DateTime TransactionDate { get; set; } [XmlElement(“transactionAmount”)] public decimal Amount { get; set; } [XmlElement(“transactionDescription”)] public string Description { get; set; } [XmlElement(“transactionType”)] public int Type { get; set; } public static Transaction FromXmlString(string xmlString) { var reader = new StringReader(xmlString); var serializer = new […]

使用LINQ进行Amazon Marketplace XML解析

我有一系列来自亚马逊的复杂XML文件,显示订单报告。 XML片段如下: 000-1111111-2222222 111-3333333-4444444 2012-03-02T13:28:53+00:00 2012-03-02T13:29:05+00:00 Pending Amazon.com http://www.amazon.com Amazon Standard Beverly Hills CA 90210-1234 US AmazonASIN Internal-SKU Pending This is the name of the product 1 Principal 19.99 我需要对此文件执行的操作是提取XML文档的各个部分,然后对数据执行许多操作。 我遇到的问题是多个订单商品。 以下代码将正确获取每个节点并将其放入列表项中,但我不确定如何将这些多个项与C#中的相同订单号相关联。 C#片段: List getNodes(string path, string nodeName) { List nodes = new List(); XDocument xmlDoc = XDocument.Load(path); //Create the XML document type foreach (var […]