0

我有一个包含很多公司数据的大型 XML 文件,我喜欢将此 XML 文件转换为我的笔记数据库中的文档。我想要每家公司一份文件。最简单的方法是什么?我下载了一个名为 Oxygen 的工具来读取数据,并且能够创建 XML 文件的 JSON 文件。我认为 JSON 可能更容易,但我不确定下一步该做什么。

4

5 回答 5

0

这不是你所要求的,但它可能是一个替代方案。我不知道有任何工具或任何内置的东西会采用 XML 并从中生成多米诺文档。然而,下面的链接通过使用服务器端 javascript 来提取 XML,最终结果将其显示在 XPages 数据表控件中。

可能有帮助:

http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=3939DB27A4536248852578CB00667264

于 2012-07-11T10:22:14.343 回答
0

Martin,其实最简单的方法是使用sax解析器来读取文件(你说它很大)。SAX 在 LotusScript 和 Java 中可用。它将为每个元素(和结尾)触发事件,因此您只需要在开始元素发生时创建一个新文档并在完成时关闭它。两种语言都很直截了当。

这是Java教程或这里只需将system.out.println替换为doc.replaceitemvalue

于 2012-07-11T13:08:25.843 回答
0

对于阅读 XML,我使用 www.nsftools.com/tips/XmlNodeReader/ 它可以快速引入节点。读取节点后,您可以将值放入 NotesDocument。

我发现创建 JSON 的最佳方法是通过http://www.openntf.org/internal/home.nsf/release.xsp?action=openDocument&documentId=543656F34C821A2A862576650054BDC2

于 2012-07-12T18:00:12.297 回答
0

如果您收到一个 XML 文件,我不会花时间将其转换为 JSON,因为它有自己的缺点和转换后可能会遇到的差异。

如前所述,您应该使用 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 类。非常简单。

于 2012-07-12T18:41:24.960 回答
0

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

并使用某种提要阅读器来创建文档。您将需要一个包含字段的表单或在您的 xml 中更改它们,以便您可以使用已有的表单。

我假设您想要现有应用程序中的数据。

我手头没有任何代码,抱歉。

但西蒙有一个很好的建议。史蒂文斯建议的教程值得研究。

希望能帮助到你。就我个人而言,我很想知道你是否成功了,当然还有你是如何做到的。

于 2012-07-24T16:49:42.507 回答