我必须比较2个xml字符串。
实际
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xml:base="http://localhost:49531/ODataV2.svc/ODataV2.svc/">
<content type="application/xml">
<m:properties>
<d:ID>2000</d:ID>
<d:ReleaseDate>1992-01-01T00:00:00</d:ReleaseDate>
<d:Rating>4</d:Rating>
<d:Price>2.5</d:Price>
</m:properties>
</content>
</entry>
预期
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xml:base="http://localhost:55615/ODataV2.svc/ODataV2.svc/">
<content type="application/xml">
<m:properties>
<d:ID>2000</d:ID>
<d:ReleaseDate>1992-01-01T00:00:00</d:ReleaseDate>
<d:Rating>4</d:Rating>
<d:Price>2.5</d:Price>
</m:properties>
</content>
</entry>
以下代码失败,因为根节点中属性xml:base中的端口号不同。
XMLAssert.assertXMLEqual(Actual, Expected);
预期的属性值 'http://localhost:55615/ODataV2.svc/ODataV2.svc/'但是 'http://localhost:49531/ODataV2.svc/ODataV2.svc/'
单元测试中的端口号在运行时更改。 有没有办法忽略特定属性并比较xml。
答案 0 :(得分:1)
我知道不是最酷或幻想的解决方案,但你可以解析&#39;在比较它们之前的两个XML,并删除或更改该属性的值到两者中相似的东西,所以当你稍后比较它们时你肯定这个东西不会影响结果
答案 1 :(得分:1)
XMLUnit 2.x具有 for (int i = 0; i < vector.GetLength(0); i++)
{
if (i == 0)
{
VectorMinMax[1]= vector[i];
VectorMinMax[0]= vector[i];
}
else {
if (VectorMinMax[1] > vector[i]) VectorMinMax[1] = vector[i];
if (VectorMinMax[0] < vector[i]) VectorMinMax[0] = vector[i];
}
}
和<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
s的概念,它们很简单NodeFilter
。
AttributeFilter
可能会奏效。
答案 2 :(得分:-1)