相关疑难解决方法(0)

XNode.DeepEquals意外返回false

使用XNode.DeepEquals()比较XML元素,它意外返回false的,我认为应该是等价的两个XML文档.

var xmlFromString = XDocument.Parse("<someXml xmlns=\"someNamespace\"/>");
var xmlDirect = new XDocument(new XElement(
  XNamespace.Get("someNamespace") + "someXml"));

Console.WriteLine(xmlFromString.ToString());
Console.WriteLine(xmlDirect.ToString());
Console.WriteLine(XNode.DeepEquals(xmlFromString, xmlDirect));
Console.WriteLine(xmlFromString.ToString() == xmlDirect.ToString());
Run Code Online (Sandbox Code Playgroud)

产量

<someXml xmlns="someNamespace" />
<someXml xmlns="someNamespace" />
False
True
Run Code Online (Sandbox Code Playgroud)

字符串被认为是相同的,但XML树不是.为什么?

.net c# xml linq-to-xml

8
推荐指数
1
解决办法
1730
查看次数

检查XML元素是否等于另一个XML元素,忽略空值

我正在检查string给出的两个XML元素是否与此方法相同:

private static bool XmlEquals(string s1, string s2)
{
    return XNode.DeepEquals(XElement.Parse(s1), XElement.Parse(s2));
}
Run Code Online (Sandbox Code Playgroud)

除非其中一个元素具有开始和结束标记,另一个元素具有如下所示的闭合标记,否则此工作:

<MyElement SomeAttribute="some value" />
<MyElement SomeAttribute="some value"></MyElement>
Run Code Online (Sandbox Code Playgroud)

我能以某种方式比较两个XML元素,上述情况被认为是相同的吗?

c# xml

6
推荐指数
1
解决办法
1893
查看次数

标签 统计

c# ×2

xml ×2

.net ×1

linq-to-xml ×1