Tag: xml

创建了XMLTextReader,但XslCompiledTransform.Transform失败并带有无效字符

我的代码: using (XmlTextReader inputReader = new XmlTextReader(xml, XmlNodeType.Document, new XmlParserContext(null, null, “en”, XmlSpace.Default))) { XsltArgumentList arglist = new XsltArgumentList(); GetXSLT().Transform(inputReader, arglist, outputStream); } XmlTextReader创建得很好,在XML内部有一个垂直制表符的实体引用(  ) 错误的行是对Transform的调用。 它表示存在无效的XML字符(当然是垂直制表符)。 我尝试过使用以下文章中引用的方法: 转义C#中的无效XML字符 我的问题是:如何使用.NET框架删除或忽略无效字符,如链接状态? 注意:以某种方式不涉及硬编码实体引用列表来替换(我已经这样做了,它很糟糕,我感觉很糟糕,我应该)

XmlException:输入文档已超出MaxCharactersFromEntities设置的限制

我有一个XML文件,如下所示: <!DOCTYPE Root [ … ]> &file1; &file2; … &file25; 我正在使用像这样的XmlDocument加载XML文件 XmlDocument doc = new XmlDocument(); doc.Load(“filePath to the above xml file”); 加载会引发标题中提到的exception。 我在Windows 7旗舰版上运行.NET 4.5,VS 2012 Desktop Express。 任何帮助表示赞赏。 谢谢

如何从对象列表创建xml文件

我定义了3个类: public class PublishedPage { public string Action { get; private set; } public string PageGuid { get; set; } public List SearchableProperties { get; set; } public PublishedPage() { Action = “Published”; SearchableProperties = new List(); } } public class DeletedPage { public string Action { get; private set; } public string PageGuid { […]

序列化List 的XmlSerializer的构造函数在与XmlAttributeOverrides一起使用时会抛出InvalidOperationException

摘要 使用XmlSerializer类时,使用XmlAttributeOverrides序列化List (其中T可以使用XmlSerializer序列化而没有问题),例如: using xmls = System.Xml.Serialization; … xmls.XmlAttributeOverrides attributeOverrides = new xmls.XmlAttributeOverrides(); attributeOverrides.Add(typeof(T), new xmls.XmlAttributes() { XmlRoot = new xmls.XmlRootAttribute(“foo”) }); attributeOverrides.Add(typeof(List), new xmls.XmlAttributes() { XmlArray = new xmls.XmlArrayAttribute(“foobar”), XmlArrayItems = { new xmls.XmlArrayItemAttribute(“foo”) }, }); 将在最内层的exception处抛出以下InvalidOperationExcpetion: System.InvalidOperationException: XmlRoot and XmlType attributes may not be specified for the type System.Collections.Generic.List`1[[T, programname, Version=versionnumber, Culture=neutral, PublicKeyToken=null]]. […]

为什么XDocument无法从这个良好的XML文本中获取元素?

我试图从以下XML文本中获取Address元素的值,但除非我从Root元素中删除xmlns=”http://www.foo.com” ,否则它找不到它。 但是,即使使用它,XML也是有效的。 这有什么问题? 由于我从Web服务获取XML文本,因此我无法控制它,但如果必须作为最后的手段,我可​​以删除xmlns部分。 Main St SW var doc = XDocument.Parse(xmlTextAbove); var address = doc.Descendants().Where(o => o.Name == “Address”).FirstOrDefault(); Console.WriteLine(address.Value); // <– error, address is null.

基于XML中先前的combobox选择填充combobox

我是.net初学者。 我正在读取一个XML文件 ,并在两个combobox中显示它,即。, cbProduct和cbBrandName 我需要在cbBrandName显示关于cbBrandName中所选文本的文本。 我实现了以下代码: DataSet ds = new DataSet(); ds.ReadXml(@”..\..\stock.xml”); cbProduct.DataSource = ds.Tables[0].DefaultView.ToTable(true, “productname”); cbProduct.DisplayMember = “productname”; cbBrandName.DataSource = ds.Tables[0].DefaultView.ToTable(true, “brandname”); cbBrandName.DisplayMember = “brandname”; 上面的代码显示了cbBrandName所有文本值。 如何使其仅显示链接到cbProduct中xml文件的选定“productname”列的文本值。 请帮忙。 提前致谢。

C#反序列化xml文件

我尝试反序列化xml文件: 我的反序列化类代码看起来像这样: [Serializable] [XmlRoot(“XmlFile”)] public class SerializeObject { [XmlAttribute(“ITEM”)] public string Item { get; set; } [XmlAttribute(“TABLE_NAME”)] public string Table_Name { get; set; } } 当我尝试反序列化xml文件时,我总是没有错误,而Item和Table_Name等于null。 为什么? 重播的Thx

Xml解析好奇心 – 属性中的“大于”

我有一些看起来像这样的xml: ‘/> 这被我试过的解析器接受为格式良好的xml, RFC的相关部分也暗示这是有效的,虽然我个人不相信它直到我检查(有趣的是这不会如果它是一个开口的三角形支撑,则它是有效的,但它是一个闭合支撑)。 我有一些用于“漂亮打印”xml的代码 – 它应该只改变行长和新行 – 它不应该改变任何内容。 但是,无论我如何尝试解析这个xml,它总是被实体替换: 这并非完全出乎意料,任何xml解析器都应该将两者视为相同,但出于我的目的,我不希望出现这种行为,因为这是仅用于更改xml文件格式的代码,而不是其内容。 如果我将xml加载到XmlDocument中并不重要: var xml = ” ‘/>”; var doc = new XmlDocument(); doc.LoadXml(xml); Console.WriteLine(doc.OuterXml); 或者XElement: var xElement = XElement.Parse(xml); xElement.Save(Console.Out); 或通过读写器对传递: using (var ms = new MemoryStream()) using (var streamWriter = new StreamWriter(ms)) { streamWriter.Write(xml); streamWriter.Flush(); ms.Position = 0; using (var xmlReader = XmlReader.Create(ms)) { […]

为什么我的XML阅读器会读取所有其他元素?

我已经构建了一个非常简单的表,显示4列和4行。 执行以下代码时,它将显示.xml文件中的每个其他元素。 它不区分每个表行。 它没有任何问题地读取,我已经运行了xmlvalidation器,因此它不是语法问题。 public partial class lblXmlOutput : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Document; settings.IgnoreWhitespace = true; settings.IgnoreComments = true; XmlReader reader = XmlReader.Create(Server.MapPath(“Part2XMLex.xml”), settings); string result = “”; while (reader.Read()) { if (reader.IsStartElement(“td”)) result += reader.ReadElementContentAsString(); txtOutput.Text = result; } } }

OpenXML替换word文档的特定customxml部分

我正在使用OpenXML SDK ver 2来操作一些word文档。 文档目前有自定义的xml部分,我想要做的是具体替换部件的xml。 我知道我可以做这样的事情来访问文档的customxml部分: Dim mainStream As New MemoryStream() Dim buffer As Byte() = File.ReadAllBytes(Server.MapPath(“myfile.docx”)) mainStream.Write(buffer, 0, buffer.Length) Try Using mainDocument As WordprocessingDocument = WordprocessingDocument.Open(mainStream, True) MainDocumentPart mainPart = mainDocument.MainDocumentPart; ‘collection of custom xml parts Dim parts = mainPart.CustomXmlParts For Each part As CustomXmlPart In parts ‘how do I replace the xml here?? […]