我正在使用getattr根据变量调用不同的函数.
我做这样的事情:
getattr(foo, bar) ()
Run Code Online (Sandbox Code Playgroud)
这工作,调用函数如foo.bar()
我的问题是我有'bar'功能,我想用不同的参数调用它.例如:
def f1() :
pass
def f2(param1) :
pass
def f3(param1,param2) :
pass
Run Code Online (Sandbox Code Playgroud)
所以'bar'可以是f1,f2或f3
我试过这个:假设params是一个包含'bar'函数所需的所有参数的列表
getattr(foo, bar) (for p in params :)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个"干净"的解决方案,无需在params变量上观察长度
我有以下xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="0" firstname="John"/>
</users>
Run Code Online (Sandbox Code Playgroud)
然后我试图用java解析它,但getchildnodes报告错误的子节点数.
Java代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(this.file);
document.getDocumentElement().normalize();
Element root = document.getDocumentElement();
NodeList nodes = root.getChildNodes();
System.out.println(nodes.getLength());
Run Code Online (Sandbox Code Playgroud)
结果:3
此外,我正在获取用于访问节点属性的NPE,因此我猜测某些内容非常糟糕.
我不知道如何解释,但我会尽我所能.我正在使用Oracle Apex并在我的表中使用数据类型为Clob的名为"CLOBTABLE"的XML.我已经尝试过XMLTYPE作为数据类型,但它不接受顶点中的任何数据,所以我使用CLOB当前作为数据类型.现在我想使用xml形式的数据,即
<Row>
<cellArray>
<Cell>
<columnId>1</columnId>
<valueArray>
<Value>
<value>IR000024575452</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>5</columnId>
<valueArray>
<Value>
<value>AZ12579856-001</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>2</columnId>
<valueArray>
<Value>
<value>IT06686</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>9</columnId>
<valueArray>
<Value>
<value>Hu Mics Metab K</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>8</columnId>
<valueArray>
<Value>
<value>2006-03-31</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>7</columnId>
<valueArray>
<Value>
<value>2006-07-27</value>
</Value>
</valueArray>
</Cell>
</cellArray>
</Row>
<Row>
<cellArray>
<Cell>
<columnId>1</columnId>
<valueArray>
<Value>
<value>IR000024575452</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>5</columnId>
<valueArray>
<Value>
<value>AZ12579856-001</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>2</columnId>
<valueArray>
<Value>
<value>IT06686</value> …Run Code Online (Sandbox Code Playgroud) children ×1
dom ×1
function ×1
getattr ×1
java ×1
oracle ×1
oracle-apex ×1
parameters ×1
plsql ×1
python ×1
variables ×1
xml ×1
xml-parsing ×1