Tag: xml

为什么我必须删除xmlns属性才能反序列化我的XML文件?

问题 我在简单的设置文件架构上使用Xsd2Code (用于XSD架构的.NET类生成器)。 出于某种原因,当我尝试使用内置的LoadFromFile()或Deserialize()方法时,我得到一个似乎与我的XSD和XML文件中的xmlns属性相关的exception。 如果我删除这些属性,则exception消失。 (有关实际导致exception的代码的详细信息,请参阅下面的“ 更新 ”。) XSD文件 XML文件(失败) – 当我尝试反序列化时,我得到一个exception SQLEXPRESS CL master XML文件(成功) – 反序列化工作正常 SQLEXPRESS CL master exception详细信息 – 如果我运行“失败示例”会发生什么 A first chance exception of type ‘System.InvalidOperationException’ occurred in System.Xml.dll System.InvalidOperationException: There is an error in XML document (2, 2). —> System.InvalidOperationException: was not expected. at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSettings.Read3_Settings() — End of inner […]

XslCompiledTransform和自定义XmlUrlResolver:“具有相同键的条目已存在”

有没有办法调试由自定义XmlUrlResolver从数据库加载的XSLT文档,或者有人知道,下面的错误消息是什么? 我有一个XSLT样式表导入一个常见的xslt文档: Scheme由一个自定义的XmlResolver处理,它从数据库加载XSLT文档,但是我收到一个错误: 已存在具有相同密钥的条目。 xsl:import引用的公共XSLT文档包含一些常见的XSLT模板,每个模板都有一个唯一的名称。 将XSLT文档从本地文件系统移动到数据库后,此错误开始发生。 使用指向本地文件的默认导入方案时以及从本地文件系统加载XSLT文档时,不会发生错误。 我还尝试在创建XslCompiledTransform的实例时打开调试,但不知何故不可能“进入”基于数据库的XSLT。 _xslHtmlOutput = new XslCompiledTransform(XSLT_DEBUG); 更新:以下基本上是请求的解析器​​代码,但我的代码中没有发生exception; 因此,我想在下面的代码中没有明显的原因。 (这个相同的代码实际上用于加载包含导入的XSLT样式表,当注释掉导入时,一切都按预期工作。) public class XmlDBResolver : XmlUrlResolver { private IDictionary GetUriComponents(String uri) { bool useXmlPre = false; uri = uri.Replace(“db://”, “”); useXmlPre = uri.StartsWith(“xml/”); uri = uri.Replace(“xml/”, “”); IDictionary dict = new Dictionary(); string app = null, area = null, subArea = […]

使用XmlSerializer序列化DataType =“time”字段

使用XmlSerializer序列化DateTime字段时,我得到一个奇怪的结果。 我有以下课程: public class RecordExample { [XmlElement(“TheTime”, DataType = “time”)] public DateTime TheTime { get; set; } [XmlElement(“TheDate”, DataType = “date”)] public DateTime TheDate { get; set; } public static bool Serialize( Stream stream, object obj, Type objType, Encoding encoding) { try { var settings = new XmlWriterSettings { Encoding = encoding }; using (var […]

使用xml文件中的值填充combobox的代码

如何使用xml文件中的值填充combobox。

将多个表从SQL Server导出到XML以进行还原

我在C#/ ASP.NET中有一个Web应用程序。 我想导出所有数据库表的数据,使用相同的唯一键( Company ID )。 所有表都有这个键(每个公司都不一样)。 我想这样做以备将来备份。 是否可以使用Linq或经典的C#? 如何实现这种备份和恢复?

XmlDocument和慢模式处理

我有一个xml模板文档,我需要加载到XmlDocument中。 例如 myXMLDocument.Load(myXMLFile); 然而,这在dtd中加载时非常慢。 我已经尝试了”http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”和dtd的本地副本。 两者都或多或少地同时进行。 如果我通过将解析器设置为null(例如)来加载dtd,那么如果文档包含这些错误,则会出现诸如”Reference to undeclared entity ‘nbsp'”错误”Reference to undeclared entity ‘nbsp'” 。 我需要使用XmlDocument,因为我需要在输出文档之前操作DOM。 我怎样才能解决这些问题呢?

C#使用其中的对象列表序列化对象

在C#中,如果我序列化一个包含对象列表的对象,它还会序列化列表吗? 例 public class Move { public string MoveName {get; set;} public List oTags = new List; } public class Tag { public string TagName {get; set;} } 如果我序列化移动,那么存储在move中的所有标签也会被序列化吗? 此外,如果它不会序列化列表,我将如何做到这一点? name Value …

删除具有给定名称的所有XML属性

我正在编辑一系列XML文件,我需要删除名为“foo”的所有属性。 此属性出现在多种元素中。 XML的示例代码段可能是: Header . . etc. 我使用的最佳解决方案是使用Regex: Regex regex = new Regex(“foo=\”” + “.*?” + “\””, RegexOptions.Singleline); content = regex.Replace(content, “”); 我知道内置的XML解析器可以提供帮助,但理想情况下我想要进行简单的XML替换/删除,而不必处理整个XML解析器的包袱。 在这种情况下,Regex是最好的解决方案吗? 编辑 : 在对XmlDocument类进行一些研究之后,我提出了一个可能的解决方案(删除存储在数组“ids”中的多个属性类型): private void removeAttributesbyName(string[] ids) { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNodeList xnlNodes = doc.GetElementsByTagName(“*”); foreach (XmlElement el in xnlNodes) { for (int i = 0; i <= […]

Easy XPathNavigator GetAttribute

刚刚开始我的第一次参加XPathNavigator 。 这是我的简单xml: 现在,我使用CommonLibrary.NET库来帮助我一点: public static XmlDocument theXML = XmlUtils.LoadXMLFromFile(PathToXMLFile); const string thexpath = “/theroot/thisnode”; public static void test() { XPathNavigator xpn = theXML.CreateNavigator(); xpn.Select(thexpath); string thisstring = xpn.GetAttribute(“visible”,””); System.Windows.Forms.MessageBox.Show(thisstring); } 问题是它无法找到属性。 我已经查看了MSDN上的文档,但是无法理解正在发生的事情。

使用LINQ to XML时如何检查XML是否包含元素?

鉴于这种结构: user1 /user1.png user2 public class User { public string UserName {get; set; } public string UserImageLocation {get; set; } } 我使用LINQ to XML从XML文件中获取数据,如下所示: XDocument document = XDocument.Parse(xmlFile); List listOfUsers = (from user in document.Descendants(“user”) select new User { UserName = user.Element(“userName”), UserImageLocation = user.Element(“userImageLocation”), } ).ToList(); 我的问题是并非所有user元素都包含userImageLocation,并且在尝试读取userImageLocation时,它会抛出exception。 如何检查XML元素是否存在,如果存在,请阅读它?