我编写了一些代码来连接FileMaker服务器,并请求在后端服务器上创建一个新记录。这部分工作正常,结果包含未在浏览器中显示的意外文本。我无法通过查看浏览器中的树来执行查找操作,因此我最终打印了标记和属性,并且每个标记属性对都有以下格式:
标记:{http://www.filemaker.com/xml/fmresultset}错误属性:{'code':'0'}
在我下面的代码中,我必须将完全限定的标记放入代码中,以获得第一个工作结果。这使得我很难从XML中找到我想要得到的对象的xPath。下面的第二个发现不起作用,因为我找不到路径。路径应该是/resultset/record/,属性是record-id。任何人都知道发生了什么。为什么fmresultset文档都在每个标记前面?你知道吗
url = self.getBaseURL( machineID, file, lay ) + fields + "&-new"
result = self.sendURL( url )
import xml.etree.ElementTree as ET
root = ET.fromstring(result)
self.printXML( root )
base = "{http://www.filemaker.com/xml/fmresultset}"
find = root.find( base + "error" )
error = find.attrib[ 'code' ]
recID = 0
if ( error == '0' ):
find = root.find( base + "resultset" + base + "/record" )
recID = find.attrib[ 'record-id' ]
基思
好吧。。。你提到了名称空间这个词,我就猜出来了。这将使用root的元素版本。你知道吗
此代码正确返回正确的值。我在期待类似的事情。创建类的实例,然后调用setNamespace()。我不得不把所有这些引用放在fmrs上,我不想这样做,但这解决了问题,而且代码读起来并不可怕。你知道吗
谢谢你的帮助。你知道吗
-基思
相关问题 更多 >
编程相关推荐