2012-07-11 121 views
0

我有一个很大的公司的数据很大的XML文件,我喜欢将这个XML文件转换为笔记数据库中的文档。我想为每家公司提供1份文件。什么是最简单的方法来做到这一点?我下载了一个名为Oxygen的工具来读取数据,并且我能够创建XML文件的JSON文件。我想你可能会更容易JSON,但我不知道下一步该怎么做。如何将XML/JSON文件转换为Lotus Notes中的文档?

回答

0

马丁,其实最简单的方法是使用SAX解析器读取文件(你说的是大)。 SAX在LotusScript和Java中可用。它将触发每个元素(和结尾)的事件,因此只需在启动元素发生时创建一个新文档,并在完成时关闭它。这两种语言都很直接。

这是Java中的一个tutorialhere只需更换与doc.replaceitemvalue

0

如果你收到我不会花时间把它与所有它自己的缺点和之后,你可能会得到不同转换成JSON XML文件转换。

如前所述,您应该使用saxparser来解析内容。如果你把它包装到一个漂亮的工厂模式中,你可以在以后轻松地扩展它。

例如

public class XmlDocumentConverterFactory(){ 
    public static AbstractXMLTDocumentConverter getConverter(String form) throws unsupportedDocumentTypeException { 

// get sax parser 
     AbstractDocumentConverter converter = null; 

    if("Company".equals(form)){ 
     converter = new CompanyDocumentConverter(); 
    }else if("Contact".equals(form)){ 
     converter = new ContactDocumentConverter(); 
    }else} 
     throw unsupportedDocumentTypeException("A Document of type "+form+" is not supported"); 
    } 

    SaxParser parser = SaxParser.getInstance(); 
    converter.setParser(parser);  
    return converter; 
    } 
} 

class abstractXMLToDocumentConverter{ 
    protected SaxParser parserInstance = null; 

    public NotesDocument parseDocument(XMLDocument doc); 
    public void setParser(SaxParser instance){ 
    this.parserInstance = instance; 
    } 


} 

// these classes should implement the eventhandlers used by the parser 
// they also need to implement the only method from their parent. 
// when you want to import an xml document simply call factory.getConverter(yourform).parse(xml). 
class ContactDocumentConverter extends AbstractDocumentConverter(){} 
class CompanyDocumentConverter extends AbstractDocumentConverter(){} 

这样,如果你需要在未来你只需要一个额外的else语句添加到工厂并创建一个新DocumentConverter类再次这样做。易如反掌。

0

在domino服务器的html部分的根目录中放置xml或json文件,不确定json是否可以工作,这是一个想法。

并使用某种Feed阅读器来创建文档。你需要一个带有字段的表单或者在你的xml中改变它们,这样你就可以使用你已经有的表单了。

我假设你想在现有的应用程序中的数据。

我没有任何代码方便,对不起。

但西蒙有一个很好的建议。 Stevens建议教程值得研究。

希望它有帮助。我个人很有兴趣知道你是否成功,当然你是如何做到的。