我正在尝试使用C#代码比较两个Xml文件。我想忽略Xml语法差异(即前缀名称)。为此,我使用了Microsoft的XML Diff和Patch C#API。它适用于某些Xml,但我找不到配置它以与以下两个Xml一起使用的方法:
XML A:
<root xmlns:ns="http://myNs">
<ns:child>1</ns:child>
</root>
XML B:
<root>
<child xmlns="http://myNs">1</child>
</root>
我的问题是:
文件是同构的,如下面的程序所示。我认为,如果您使用XmlDiffOptions.IgnoreNamespaces
和XmlDiffOptions.IgnorePrefixes
配置Microsoft.XmlDiffPatch.XmlDiff
,那么您将获得所需的结果。
using System.Linq;
using System.Xml.Linq;
namespace SO_794331
{
class Program
{
static void Main(string[] args)
{
var docA = XDocument.Parse(
@"<root xmlns:ns=""http://myNs""><ns:child>1</ns:child></root>");
var docB = XDocument.Parse(
@"<root><child xmlns=""http://myNs"">1</child></root>");
var rootNameA = docA.Root.Name;
var rootNameB = docB.Root.Name;
var equalRootNames = rootNameB.Equals(rootNameA);
var descendantsA = docA.Root.Descendants();
var descendantsB = docB.Root.Descendants();
for (int i = 0; i < descendantsA.Count(); i++)
{
var descendantA = descendantsA.ElementAt(i);
var descendantB = descendantsB.ElementAt(i);
var equalChildNames = descendantA.Name.Equals(descendantB.Name);
var valueA = descendantA.Value;
var valueB = descendantB.Value;
var equalValues = valueA.Equals(valueB);
}
}
}
}
问题内容: 我一直在寻找一套在JSON和XML之间进行转换的例程,但毫无用处。我在Javascript,Java,PHP和Python中找到了这样的例程,但在C或C ++中却找不到。 FWIW,我的json库是json- spirit。我当前正在处理JSON,并希望通过转换层添加XML支持(将传入消息从XML转换为JSON,对其进行处理,将结果转换回XML,然后将其输出)。 有人有指针吗? 我还看
问题内容: 我想知道哪个更快:XML和JSON?什么时候使用哪一个? 问题答案: 在回答何时使用哪一个之前,有一点背景知识: 编辑:我应该提到,这种比较实际上是从在具有JavaScript的浏览器中使用它们的角度来看的。这也不数据格式的方法 有 被使用,并且有很多很好的解析器,这将改变细节,使我在说什么不是很有效的。 JSON既更紧凑,又(在我看来)更具可读性-在传输中,仅因为传输的数据较少,它就
产品由
此代码给出输出ELSE 此代码给出的输出是: 虽然两个程序看起来都一样,但为什么输出有差异呢?为什么会这样?
本文向大家介绍C#中的Linq to Xml详解,包括了C#中的Linq to Xml详解的使用技巧和注意事项,需要的朋友参考一下 前言 我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题。 一、生成Xml 为了能够在结构有一定的组织,笔者建议大家新建一个控制台项目,
问题内容: 基于另一个SO问题,如何检查两个格式正确的XML代码片段在语义上是否相等。我需要的只是“相等”与否,因为我正在将此用于单元测试。 在我想要的系统中,它们是相等的(请注意“开始”和“结束”的顺序): 我可以使用lmxl和其他工具,并且一个仅允许对属性进行重新排序的简单函数也可以正常工作! 基于IanB答案的工作片段: 问题答案: 您可以使用formencode.doctest_xml_c