3

我们需要验证我们生成的 xml 文档的内容。是否有任何框架可以帮助轻松提取和验证文档的内容?

我们需要知道的事情

  • 包含元素 x
  • 元素 x 的值
  • 元素 x 包含具有值 z 的属性 y
  • 意想不到的元素

如果没有断言也没关系,这可以通过 MSTest 完成

4

2 回答 2

6

在此处查看 Fluent Assertions 库文档:https ://fluentassertions.com/introduction

标题为“XML 类”的部分听起来像是您所追求的。该代码在下面使用 LINQ-to-XML。

xDocument.Should().HaveRoot("configuration");
xDocument.Should().HaveElement("settings");

xElement.Should().HaveAttribute("age", "36");
xElement.Should().HaveElement("address");

xAttribute.Should().HaveValue("Amsterdam");

您可以在此处从 nuget 安装 FluentAssertions:http: //nuget.org/packages/FluentAssertions

于 2012-12-07T10:49:05.367 回答
1

您还可以使用 xsd.exe(包含在 VS 中)之类的工具从您为 XML 拥有的 XSD 文件生成 C# 实体。

生成对象后,您可以使用XmlSerializer的实例来反序列化您的 XML。如果您不能反序列化您的 XML,那么您很快就会知道您有无效的 XML。

之后,您应该能够通过使用反序列化实体的各种属性来相当轻松地验证 XML 的内容。

这是一篇关于从 XSD 生成实体对象的不错的入门博客文章,它展示了一些使用 XmlSerializer 的简单反序列化代码。

于 2012-12-10T02:52:31.730 回答