Sorry if you find this overKill (This will retrieve all items from your org and remove them)
The way i have gotten mine to work (This is for a full dev operation and will be overkill if you know all the information needed, However if you do not know all of the data by name this will work. It will just take some time to run) is with a several stage deploy undeploy check, First i generate a package.xml for all items within a org. using the wildcard *
Here is what mine looks like (CUT DOWN VERSION) (Package.xml)
<echo file="purge/package.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types><members>*</members><name>ApexClass</name></types>
<types><members>*</members><name>ApexPage</name></types>
<types><members>Opportunity.BatchProcess__c</members><name>CustomField</name></types>
<types><members>*</members><name>CustomField</name></types>
<types><members>*</members><name>CustomLabel</name></types>
<types><members>*</members><name>CustomLabels</name></types>
<types><members>*</members><name>CustomObject</name></types>
<version>34.0</version>
</Package>
]]></echo>
then you will want to replace the package definition like so
<replace file="purge/package.xml">
<replacetoken><![CDATA[</version>]]></replacetoken>
<replacevalue><![CDATA[</version><fullName>Purge</fullName>]]></replacevalue>
</replace>
Now you will want to re-deploy the wildcard package definition
<sf:deploy
username="${sf.username}"
password="${sf.password}"
serverurl="https://login.salesforce.com"
deployRoot="purge"
purgeOnDelete="true"
pollWaitMillis="1000" />
Next you will want to retrieve by name (This will give you your explicit package definition, You can skip all the above if you have this information already)
<sf:retrieve
username="${sf.username}"
password="${sf.password}"
serverurl="https://login.salesforce.com"
retrieveTarget="purge"
packageNames="Purge"
pollWaitMillis="1000" />
You can trash all local components retrieved from this.
<delete includeEmptyDirs="true" dir="purge" includes="**/*" excludes="*.xml" />
<copy file="purge/package.xml" tofile="purge/destructiveChanges.xml" />
<echo file="purge/package.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>29.0</version>
</Package>
]]></echo>
Now you can deploy your explicate deploy over the top of the org. This will delete everything.
<sf:deploy
username="${sf.username}"
password="${sf.password}"
serverurl="https://login.salesforce.com"
deployRoot="purge"
purgeOnDelete="true"
pollWaitMillis="10000" />
The above will get you removing all items from the org, You can write in ignore rules if you wish.
To me you above error of members is referencing your Package.XML where you have not told it about any Members Or Types.
I would add
<types><members>*</members><name>ApexClass</name></types>
just to rule that out. But this will get you running.