Tag: xml

在使用数据协定序列化程序序列化IXmlSerializable对象时,如何控制根元素名称空间和名称?

我有一个实现IXmlSerializable的类型,我使用DataContractSerializer序列化。 在将其作为XML文档的根元素序列化时,如何控制根元素名称空间和名称? 说我有以下类型: public partial class PersonDTO : IXmlSerializable { public string Name { get; set; } #region IXmlSerializable Members public System.Xml.Schema.XmlSchema GetSchema() { return null; } public void ReadXml(System.Xml.XmlReader reader) { Name = reader[“name”]; if (!reader.IsEmptyElement) reader.Skip(); reader.Read(); } public void WriteXml(System.Xml.XmlWriter writer) { writer.WriteAttributeString(“name”, Name); } #endregion } 如果我使用DataContractSerializer作为我的根对象将其序列化,我得到: 我希望根名称为 ,根名称空间为”http://www.MyCompany.com” ,所以我尝试添加[DataContract]如下所示: [DataContract(Name […]

Census Geocoder JSON输出在C#中使用JSON.net转换为Xml数据集

我在Visual Studio 2012中创建一个.Net应用程序,用于查询我的SQL dB中的地址表,并使用Census Geocoding API返回每个地址的特定MSA。 我有现有的dB查询代码,但我在将Census API的Json输出转换为Xml数据集时遇到问题。 我正在使用Json.net序列化json输出,然后反序列化为.net以加载到XmlDocument中。 不幸的是,我一直收到XmlException错误: 根级别的数据无效。 第1行,第1位 细节: System.Xml.XmlException未处理HResult = -2146232000 消息=根级别的数据无效。 第1行,第1位。 Source = System.Xml LineNumber = 1 LinePosition = 1 SourceUri =“” StackTrace:位于System.Xml.Xml.Xml.Xh处的System.Xml.XmlTextReaderImpl.Throw(String res,String arg)的System.Xml.XmlTextReaderImpl.Throw(Exception e),位于System.Xml.XmlTextRemplImpl.ParseDocumentContent()的System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()处位于System.Xml.XmlDocument.LoadXml(String xml)的System.Xml.XmlDocument.Load(XmlReader reader)的System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean preserveWhitespace)中的System.Xml.XmlTextReaderImpl.Read() )在C:\ Users \ jdsmith \ Documents \ Visual Studio 2012 \ Projects \ C#\ MSA_Application_v2 \ MSA_Application_v2 […]

使用SelectSingleNode()方法需要哪个命名空间(使用默认命名空间而不能使用该方法)

嗨,我有使用不同命名空间的xml文件(实际上是msbuild文件) Value 但问题是因为我不能将SelectSingleNode与该文件一起使用 xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″ 我相信它是因为默认命名空间(方法必需)因为上面的xmlns而消失了。 然后我想我只需要为此添加必要的……但我的尝试根本没有成功。 能否请您快速举例说明如何做到这一点? 我是这样做的。 (我也尝试添加多个名称空间,但没有成功..) XmlDocument xml = new XmlDocument(); xml.Load(“ref.props”); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace(“msbld”, “http://schemas.microsoft.com/developer/msbuild/2003”); XmlNode platform_node = xml.SelectSingleNode(“//msbld:PropertyGroup[contains(@Condition, ‘1111’)]”, nsmgr);

将xelement加载到数据表中

我有以下xml文件,其中包含很多关于公司分支机构的信息..(这只是一个例子).. 我真正需要的是,只在数据表中加载Branch1中的数据(与我的xml文件具有相同的结构,因此数据表根本没有问题)。 iam使用c#而我想这样做是linq,但我不知道linq …我的问题是:我如何从xml读取条目作为数据表行,所以我可以将它复制到我的数据表? 我现在有: XElement main = XElement.Load(“branches.xml”); IEnumerable elList = from el in main.Descendants(“branch”).Where(ex=>ex.Attribute(“name”).Value==”Branch1″) select el; //this will return me the element where name =Branch1 //now, how would i only load this entry into my datatable ?? //this won`t work branchesDataTable.ReadXml(XElement el in elList); 任何帮助真的很感激.. Street 1, 1234, NY 0123456789 James Street 2, […]

使用XMl阅读器读取配置文件

我在web.config文件的AppSettings部分有一堆密钥。 我想使用XML阅读器技术阅读这些应用程序设置的键和值,并在列表框中填充它们。

有多个根元素加载xml

sRecieved = “2.03.0” Dim xml As New XmlDocument(); xml.LoadXml(sRecieved); 有多个根元素…..我想要xmlclient值和xmlversion值

在前缀元素下没有xmlns的XmlDocument CreateElement

我正在尝试使用以下代码中的C#XmlDocument类来编写一个SOAP请求到ebay FindingAPI Web服务: XmlDocument doc = new XmlDocument(); XmlElement root = (XmlElement)doc.AppendChild(doc.CreateElement(“soap”, “Envelope”, “http://www.w3.org/2003/05/soap-envelope”)); root.SetAttribute(“xmlns”, “http://www.ebay.com/marketplace/search/v1/services”); XmlElement header = (XmlElement)root.AppendChild(doc.CreateElement(“soap”, “Header”, “http://www.w3.org/2003/05/soap-envelope”)); XmlElement body = (XmlElement)root.AppendChild(doc.CreateElement(“soap”, “Body”, “http://www.w3.org/2003/05/soap-envelope”)); XmlElement request = (XmlElement)body.AppendChild(doc.CreateElement(“findItemsByKeywordsRequest”)); XmlElement param = (XmlElement)request.AppendChild(doc.CreateElement(“keywords”)); param.InnerText = “harry potter phoenix”; 并且,上面代码的XML输出是: harry potter phoenix 但是,由于findItemsByKeywordsRequest元素中有额外的xmlns =“”属性,服务器无法识别此XML。 所需的XML输出应如下所示: harry potter phoenix 有谁知道我的代码有什么问题,请给我一些提示。 谢谢!

在.NET中使用document()函数XSLT会产生错误

我想在我的XSLT文件中使用嵌入式资源,但在调用’document(…)’时,C#抱怨“加载文档时出错……” 我想在XSLT文件中使用已定义的资源并通过它获取它们:“document(”) // my:resources / ”… 我怎样才能做到这一点?? ex xsl: tryb 如何在C#中无exception地访问此类结构? 我将在静态转换期间通过ex添加。 Opera一切正常。

将xmlns属性添加到XML文档中的根元素时,我的linq查询不起作用

我正在尝试更多地使用LINQ-to-XML,所以我自己做了一个简洁的小例子XML文档来尝试。 另外,我尝试(并且成功地)为该文件创建了自己的XML模式,只是为了测试。 XML文档非常简单,几乎看起来像这样: 1 BMW 320i Red 2 VW Golf White […] 现在,如果我从根元素中删除xmlns -attribute,查询此文档就可以了。 当我重新添加它时,查询返回null,什么也没有。 我试图自己找出来,但我还没有找到解决问题的解决办法。 这是C#-bit: XDocument xmlDoc = XDocument.Load(currentDir + “\\Cars.xml”); // XNamespace ns = “{” + currentDir + “\\carSchema.xsd}”; // Tried to query xmlDoc.Descendants(ns+”car”) after reading another post, // but that made no difference var carInfo1 = from car in xmlDoc.Descendants(“car”) select […]

InvalidOperationException:参数对象’Scratch’的类型不是原始的

所以有错误。 InvalidOperationException:参数对象’Scratch’的类型不是原始的 我正在做的是序列化类List ( List )。 BaseEnemy类还有一个类List ( List )。 当我运行时,BaseEnemy列表正确序列化。 但是,BaseMoves列表没有。 Scratch是一个派生自BaseMove的类,它存储在List 。 这就是我遇到的问题。 我在这里找到了答案…… 这里 …… “使用XmlInclude属性标记BaseMove类,将派生类作为参数传递:” [XmlInclude(typeof(Scratch))] public class BaseMove { public BaseMove() { } } 奇迹般有效! 那我为什么要在这里发帖呢? 新问题。 我有大量来自BaseMove的动作。 有没有快捷方式,还是我必须在XmlInclude中编写每一个“typeof(…)”? 编辑 – 我找到的另一种解决方案。 public static Type[] GetAllSubTypes(Type aBaseClass) { List result = new List(); Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly a […]