3

生成した xml ドキュメントの内容を検証する必要があります。ドキュメントのコンテンツを簡単に抽出して検証するのに役立つフレームワークはありますか?

私たちが知る必要があること

  • 要素 x を含む
  • 要素 x の値
  • 要素 x には、値 z を持つ属性 y が含まれます
  • 予想外の要素

アサーションがなくても大した問題ではありません。これは MSTest を介して実行できます。

4

2 に答える 2

6

ここでFluentAssertionsライブラリのドキュメントをご覧ください: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 に答える