Tag: xml

使用带有包含的XSD

这是一个XSD: 这是第二个包含上述XSD的XSD: 我需要将(第二个)XSD读入C#并且: 检查它是否是有效的XSD,并且 validation文件。 下面是一些在架构中读取的C#: XmlSchemaSet schemaSet = new XmlSchemaSet(); foreach (string sd in Schemas) { using (XmlReader r = XmlReader.Create(new FileStream(sd, FileMode.Open))) { schemaSet.Add(XmlSchema.Read(r, null)); } } schemaSet.CompilationSettings = new XmlSchemaCompilationSettings(); schemaSet.Compile(); .Compile()失败,因为“Type’a:TheSimpleType’未声明,或者不是简单类型。” 但是,它适用于: 命名空间将从架构中删除,或 命名空间被添加到include中。 问题是:如何在不编辑架构的情况下让C#接受它? 我怀疑问题是虽然我已经将两个架构放入XmlSchemaSet中,但我仍然需要告诉C#一个被包含在另一个中,即它没有为自己解决问题。 实际上,如果我只告诉XmlSchemaSet关于主XSD(而不是include)(两者都没有(或带有)名称空间)那么“Type”TheSimpleType’未声明,或者不是简单类型。“ 因此,这似乎是一个关于解决的问题包括:如何?!

.NET中的XPath SelectNodes

如果我将上述XML加载到XmlDocument并使用XPath查询在C上执行SelectSingleNode // C XmlNode oNode = oDocument.SelectSingleNode(“E”); XmlNodeList oNodeList = oNode.SelectNodes(“// C”); 为什么它会从Under B返回节点,而我预期会发生它只会从E下返回节点 合理? 编辑:我将如何使它只从该节点返回?

用于比较XML节点的高效算法

我想确定XML文档中的两个不同的子节点是否相等。 如果两个节点具有相同的属性集和子注释,并且所有子注释也相等(即整个子树应该相等),则应认为它们是相等的。 输入文档可能非常大(最多60MB,超过100000个节点需要比较)并且性能是个问题。 检查两个节点是否相等的有效方法是什么? 例: Hello World 此XML片段描述了OpenXML文档中的段落。 该算法将用于确定文档是否包含具有与文档前面的另一段相同属性(w:pPr节点)的段落(w:p节点)。 我有一个想法是将节点的外部XML存储在一个哈希集中(通常我必须首先得到一个规范的字符串表示,其中属性和子注释总是以相同的方式排序,但我可以期望我的节点已经到以这种forms)。 另一个想法是为每个节点创建一个XmlNode对象,并编写一个比较所有属性和子节点的比较器。 我的环境是C#(。Net 2.0); 我们非常欢迎任何反馈和进一步的想法。 也许有人甚至已经有了一个很好的解决方案? 编辑:微软的XmlDiff API实际上可以这样做,但我想知道是否会有一个更轻量级的方法。 XmlDiff似乎总是产生一个diffgram,并且总是先生成一个规范的节点表示,这两件事我都不需要。 EDIT2:我最终根据这里提出的建议实现了我自己的XmlNodeEqualityComparer。 非常感谢!!!! 谢谢,divo

解析EntityName时发生错误。 第1行,位置844

我从以下代码块中得到以下exception。 解析EntityName时发生错误。 第1行,位置844。 我试图将从表中检索到的数据集解析为数据集。 public DataSet BindMasterData(string xml) { DataSet ds = null; try { ds = new DataSet(); TextReader txtReader = new StringReader(xml); XmlReader reader = new XmlTextReader(txtReader); ds.ReadXml(reader); } catch (Exception ex) { return new DataSet(); } return ds; } 我已经找到了exception的原因,但我无法解决它。 在这种特殊情况下,字符串(从DB检索)包含一个特殊字符(&)。 这导致例外。 我怎么解决它。 对此的任何帮助都会很棒。 谢谢你,塞巴斯蒂安

无法获取XmlDocument.SelectNodes来检索我的任何节点?

我正在尝试解析XML文档。 有问题的文档是AppxManifest文件。 示例文档如下所示: jhjj bhhjb Assets\StoreLogo.png 6.2.1 6.2.1 Text 我尝试像这样解析它: var xml=new XmlDocument(); xml.Load(myfile); var mgr=new XmlNamespaceManager(xml.NameTable); mgr.AddNamespace(“”, “http://schemas.microsoft.com/appx/2010/manifest”); var nodes=xml.SelectNodes(“Applications”); 但是,执行此操作后, nodes将永远不会包含任何内容。 虽然加载了xml文档。 使用SelectNodes(“//*”)按预期返回每个节点。 我的问题在这里是什么? 我也尝试过很多关于XPath查询的变体,例如 /Package/Applications/Application Applications/Application Applications/* 但是,似乎没有任何东西可以检索单个节点。 理想情况下,我希望节点包含所有Application节点

从C#读取gmail帐户的Atom提要

我有一个项目会将包含某些数据的电子邮件发送到Gmail帐户。 我认为阅读Atom提要可能更容易,而不是通过POP连接。 根据Google,我应该使用的url是: https://gmail.google.com/gmail/feed/atom 问题/问题是:如何validation我想要查看的电子邮件帐户? 如果我在Firefox中使用它,它会使用cookie。 我也不确定如何“下载”此请求应该返回的XML文件(我相信正确的术语是流)。 编辑1: 我正在使用.Net 3.5。

如何获取XDocument对象中的属性

我有这个xml 我希望我的代码能够做到这样的事情 if (xdoc.getAttr(“first”)==”true”) Console.Write(“first is true”); 如何使用LINQ XDocument执行此操作? 到目前为止我所拥有的是用该xml字符串加载的XDocument对象。

C#XMLreader和子节点

我有这个xml文件。 8.582207 3 true false en Transformers Transformers The Transformers movie 1858 tt0418279 http://www.themoviedb.org/movie/1858 28 7.2 PG-13 The Earth is caught in the middle of an intergalactic war /overview> 2007-07-04 2010-04-26 03:26:14 我正在阅读所有的属性使用 textReader.ReadToFollowing(“original_name”); string title =textReader.ReadElementContentAsString(“original_name”,textReader.NamespaceURI); 但是,无论我尝试什么,我都无法读取“图像”的子节点。

如何遍历XDocument的节点

我试图遍历我的xml文档的节点,以获取每个节点中Ed的值。 我使用Linq首先对XDocument进行排序,然后尝试遍历节点。 我似乎无法找到正确的foreach循环来实现这一目标。 任何帮助表示赞赏。 var doc = XDocument.Load(“files\\config.xml”); var newDoc = new XDocument(new XElement(“Config”, from p in doc.Element(“Config”).Elements(“Profile”) orderby int.Parse(p.Element(“order”).Value) select p)); foreach (XElement xe in newDoc.Nodes()) { MessageBox.Show(xe.Element(“username”).Value); } // XML document Scope Scope 1 … 0000 Scope W2BN [IP] Lobby 1 2 Scope 2 Scope 2 … 0000 Scope W2BN [IP] Lobby 1 […]

替换XML序列化

我有使用XmlSerializer代码来序列化/反序列化数据结构以保持持久性。 我在StackOverflow上的几个地方读过和听说XmlSerializer是以下一个或多个: 坏 支持/实施不力 可能不会支持未来 我的问题是双重的; 以上是否属实,若有,有哪些替代方案? 就我的目的而言,XML工作得非常好,我希望保持这种不变,但其他一切都是可以改变的。 编辑:如果你想建议XML的其他东西,我会接受它,但它确实需要人类可读。