我的代码是:
'''
Created on 27/05/2015
@author: Rederick Deathwill
'''
from java.io import File
from java.io import IOException
from javax.xml.parsers import DocumentBuilder
from javax.xml.parsers import DocumentBuilderFactory
from org.w3c.dom import Document
from org.w3c.dom import Element
from org.w3c.dom import Node
from org.w3c.dom import NodeList
from org.xml.sax import SAXException
class JXLLoader():
def __init__(self, fileName):
self.fileName = fileName
self.file = File(self.fileName)
self.dbFactory = DocumentBuilderFactory.newInstance()
self.dBuilder = self.dbFactory.newDocumentBuilder()
self.doc = self.dBuilder.parse(self.file)
self.doc.getDocumentElement().normalize()
class JXLReader(JXLLoader):
def __init__(self, fileName):
JXLLoader.__init__(self, fileName)
self.mainNodeList = self.doc.getElementsByTagName("main") # Here <<
if __name__ == '__main__':
jxl = JXLReader("x.xml")
print(jxl.mainNodeList)
for i in range(jxl.mainNodeList.getLength()):
node = jxl.mainNodeList.item(i)
if (node.getNodeType() == Node.ELEMENT_NODE):
e = node
print(e.getElementsByTagName("value").item(0).getTextContent())
有没有办法检查文档对象中是否存在“标记名”?我不知道如何检查标签“main”是否不存在。例如:
打印的结果(jxl.mainNodeList)是:
^{pr2}$但是,如果我使用不存在的标记执行此操作:
self.mainNodeList = self.doc.getElementsByTagName("maix")
当我打印出来的结果是一个地址/对象,就像那个地址/对象一样(而不是null/None或其他)。关键是,我如何才能知道“<;main>;<;/main>;”是否真的在文档中,以便在没有的情况下提出异常?在
以下是XML:
<?xml version="1.0" encoding="UTF-8"?>
<main>
<value>100</value>
<name>Rederick Deathwill</name>
</main>
编辑:我还检查了docs。没有像“hasTagName()”这样的方法。在
检查
getElementsByTagName
调用的返回值的长度。在如果
self.mainNodeList.getLength() == 0
,那么getElementsByTagName
调用找不到任何内容。在相关问题 更多 >
编程相关推荐