2012-07-11 138 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建議教程值得研究。

希望它有幫助。我個人很有興趣知道你是否成功,當然你是如何做到的。