Here's the new export.py that should work:
Code:
#!BPY

"""
Name: Export to XML
Blender: 228
Group: 'Export'
Tip: 'Export MSX.'
"""

# Exporter by {MSX}
# Released under GPL

import Blender
import sys
from string import *

PATH = "c:\\enter\\your\\path\\"




def dumpFace(fi, num, a,b,c, auv, buv, cuv):
	fi.write&#40;"	<FACE id=\""+`num`+"\">\n"&#41;
	fi.write&#40;"		<A>"+`a` + "</A>\n"&#41;
	fi.write&#40;"		<AU>"+`auv&#91;0&#93;` + "</AU>\n"&#41;
	fi.write&#40;"		<AV>"+`-auv&#91;1&#93;` + "</AV>\n"&#41;
	fi.write&#40;"		<B>" + `b` + "</B>\n"&#41;
	fi.write&#40;"		<BU>"+`buv&#91;0&#93;` + "</BU>\n"&#41;
	fi.write&#40;"		<BV>"+`-buv&#91;1&#93;` + "</BV>\n"&#41;
	fi.write&#40;"		<C>" + `c` + "</C>\n"&#41;
	fi.write&#40;"		<CU>"+`cuv&#91;0&#93;` + "</CU>\n"&#41;
	fi.write&#40;"		<CV>"+`-cuv&#91;1&#93;` + "</CV>\n"&#41;
	fi.write&#40;"	</FACE>\n"&#41;


# dumpMesh -- the object dumper f&#58; File, o&#58; NMesh
def dumpMesh&#40;o&#41;&#58;
	if o.block_type == 'NMesh' &#58;
		filename = lower&#40;o.name&#41; + '.mesh'
		print&#40;'Exporting ' + filename + ' mesh'&#41;
		fmesh = open&#40;PATH+filename, 'w'&#41;
		fmesh.write&#40;"<MESH>\n"&#41;
		mesh = Blender.NMesh.GetRaw&#40;o.name&#41;
		# add face UV if it doesn't have
		mesh.hasFaceUV&#40;1&#41;
		# header
		fmesh.write&#40;"<NAME>" + lower&#40;o.name&#41; + "</NAME>\n"&#41;
		
		# Vertex Coordinate header
		fmesh.write&#40;"<POINTCOUNT>" + `len&#40;mesh.verts&#41;` + "</POINTCOUNT>\n"&#41;
		
		# Verticies
		fmesh.write&#40;"<POINTS>\n"&#41;
		i = 0
		for vert in mesh.verts&#58;
			fmesh.write&#40;"	<VERTEX id=\""+`i`+"\">\n"&#41;
			fmesh.write&#40;"		<X>"+`-vert.co&#91;0&#93;` + "</X>\n"&#41;
			fmesh.write&#40;"		<Y>" + `vert.co&#91;2&#93;` + "</Y>\n"&#41;
			fmesh.write&#40;"		<Z>" + `vert.co&#91;1&#93;` + "</Z>\n"&#41;
			fmesh.write&#40;"		<NX>"+`vert.no&#91;0&#93;` + "</NX>\n"&#41;
			fmesh.write&#40;"		<NY>" + `vert.no&#91;2&#93;` + "</NY>\n"&#41;
			fmesh.write&#40;"		<NZ>" + `vert.no&#91;1&#93;` + "</NZ>\n"&#41;
			fmesh.write&#40;"	</VERTEX>\n"&#41;
			i = i + 1
		fmesh.write&#40;"</POINTS>\n"&#41;

		# faces
		faces = len&#40;mesh.faces&#41;
		i=0
		data = ""
		colordata = ""
		fmesh.write&#40;"<FACES>\n"&#41;
		for face in mesh.faces&#58;
			if len&#40;face.v&#41; < 3&#58;
				# discard
				faces = faces - 1
				print 'Face discarded'
			elif len&#40;face.v&#41; == 3&#58;
				# Already a triangle, add it to the data, do not change the count
				# reset face uv if it doesn't have
				if len&#40;face.uv&#41; == 0&#58;
					face.uv = &#91;&#40;0,0&#41;,&#40;0,1&#41;,&#40;1,0&#41;&#93;
				dumpFace&#40;fmesh, i, face.v&#91;0&#93;.index, face.v&#91;1&#93;.index, face.v&#91;2&#93;.index, face.uv&#91;0&#93;, face.uv&#91;1&#93;, face.uv&#91;2&#93;&#41;
				i=i+1
			else&#58;
				# this one is a quad
				# Break it up into two triangles
				# Hence one additional face

				# reset face uv if it doesn't have
				if len&#40;face.uv&#41; == 0&#58;
					face.uv = &#91;&#40;0,0&#41;,&#40;0,1&#41;,&#40;1,0&#41;, &#40;1,1&#41;&#93;
				
				faces = faces + 1
				dumpFace&#40;fmesh, i, face.v&#91;0&#93;.index, face.v&#91;1&#93;.index, face.v&#91;3&#93;.index, face.uv&#91;0&#93;, face.uv&#91;1&#93;, face.uv&#91;3&#93;&#41;
				i=i+1
				dumpFace&#40;fmesh, i, face.v&#91;1&#93;.index, face.v&#91;2&#93;.index, face.v&#91;3&#93;.index, face.uv&#91;1&#93;, face.uv&#91;2&#93;, face.uv&#91;3&#93;&#41;
				i=i+1				
		fmesh.write&#40;"</FACES>\n"&#41;
		# Now I can write the the correct face count
		fmesh.write&#40;"<FACECOUNT>" + `faces` + "</FACECOUNT>\n"&#41;
		fmesh.write&#40;"</MESH>\n"&#41;	
		# Close the file
		fmesh.close&#40;&#41;;


def findTexture&#40;mesh&#41;&#58;
	for face in mesh.faces&#58;
		if face.image&#58;
			s = split&#40;face.image.filename, "/"&#41;
			s1 = split&#40;s&#91;len&#40;s&#41;-1&#93;,"."&#41;
			return s1&#91;0&#93;
	return "none"


def DumpObject&#40;f, ob&#41;&#58;
	textu = findTexture&#40;ob.data&#41;
	meshname = lower&#40;ob.data.name&#41;
	print "Dumping mesh "+meshname+" texture&#58; "+textu
	dumpMesh&#40;ob.data&#41;
	f.write&#40;"		<BLOCK>\n"&#41;
	f.write&#40;"			<MESH>"+meshname+"</MESH>\n"&#41;
	f.write&#40;"			<TEXTURE>"+textu+"</TEXTURE>\n"&#41;
	f.write&#40;"			<POS>\n"&#41;
	f.write&#40;"				<X>"+`-ob.LocX-ob.dLocX`+"</X>\n"&#41;
	f.write&#40;"				<Y>"+`ob.LocZ+ob.dLocZ`+"</Y>\n"&#41;
	f.write&#40;"				<Z>"+`ob.LocY+ob.dLocY`+"</Z>\n"&#41;
	f.write&#40;"			</POS>\n"&#41;
	f.write&#40;"			<ROT>\n"&#41;
	f.write&#40;"				<X>"+`ob.RotX+ob.dRotX`+"</X>\n"&#41;
	f.write&#40;"				<Y>"+`ob.RotY+ob.dRotY`+"</Y>\n"&#41;
	f.write&#40;"				<Z>"+`-ob.RotZ-ob.dRotZ`+"</Z>\n"&#41;
	f.write&#40;"			</ROT>\n"&#41;
	f.write&#40;"		</BLOCK>\n"&#41;

def DumpModel&#40;f, scene&#41;&#58;
	f.write&#40;"<MODEL>\n"&#41;
	f.write&#40;"	<NAME>"+lower&#40;scene.name&#41;+"</NAME>\n"&#41;
	f.write&#40;"	<MESHES>\n"&#41;
	
	# Go through the objects and export them
	for ob in scene.getChildren&#40;&#41;&#58;
		print &#40;ob.getType&#40;&#41;&#41;
		if ob.getType&#40;&#41;=='Mesh'&#58;
			DumpObject&#40;f, ob&#41;
	f.write&#40;"	</MESHES>\n"&#41;	
	f.write&#40;"</MODEL>\n"&#41;


scene = Blender.Scene.getCurrent&#40;&#41;
filename = lower&#40;scene.name&#41; + '.model'
print&#40;'Exporting ' + filename + ' model'&#41;
fout = open&#40;PATH+filename, 'w'&#41;
DumpModel&#40;fout, scene&#41;
fout.close&#40;&#41;;
print&#40;'Model exported!'&#41;

Remember that it doesn't give any feedback when it runs correctly (you just find the files where you asked them).
Maybe i could add a blender GUI in future