Ale*_*exP 1 coldfusion coldfusion-9
我创建了一个抽象的file parsercfc.听起来,这会抽象出从文件系统中读取文件时所需的一些常见任务.
所述组件的一个子节点用于解析XML文件并返回coldfusion XML文档.现在这一切都很完美,但是,我无法弄清楚的一件事是如何明确定义xml文档的返回类型,这是我强烈要强制执行的.
负责返回XML文档的方法如下:
public coldfusion.xml.XmlNodeList function parse(string filePath = "", boolean isCaseSensitive = false, string validator = "")
{
super.parse(arguments.filePath);
var data = getData();
if (len(arguments.validator)) {
setDocument(xmlParse(data, arguments.isCaseSensitive, arguments.validator));
} else {
setDocument(xmlParse(data, arguments.isCaseSensitive));
}
return getDocument();
}
Run Code Online (Sandbox Code Playgroud)
您可以看到返回类型是coldfusion.xml.XmlNodeList.我已经设法通过使用以下客户端代码弄清楚.
<cfscript>
factory = new Library.parser.Factory();
parser = factory.getParser("XmlFileParser");
xmlDoc = parser.parse("/var/www/development/Framework/test/testfile.xml");
/** XMLDoc is now a coldfusion document object **/
writeDump(xmlDoc);
writeDump(getMetadata(xmlDoc).getName()); /** outputs coldfusion.xml.XmlNodeList **/
</cfscript>
Run Code Online (Sandbox Code Playgroud)
这是不正确的,我得到的错误是:
The value returned from the parse function is not of type coldfusion.xml.XmlNodeList.
我错过了一些非常简单的事吗?我应该这么关心吗?
编辑:
添加了getDocument方法(正如您所看到的那样,返回类型为"any")
public any function getDocument()
{
return variables.document;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |