我有一个包含很多公司数据的大型 XML 文件,我喜欢将此 XML 文件转换为我的笔记数据库中的文档。我想要每家公司一份文件。最简单的方法是什么?我下载了一个名为 Oxygen 的工具来读取数据,并且能够创建 XML 文件的 JSON 文件。我认为 JSON 可能更容易,但我不确定下一步该做什么。
5 回答
这不是你所要求的,但它可能是一个替代方案。我不知道有任何工具或任何内置的东西会采用 XML 并从中生成多米诺文档。然而,下面的链接通过使用服务器端 javascript 来提取 XML,最终结果将其显示在 XPages 数据表控件中。
可能有帮助:
http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=3939DB27A4536248852578CB00667264
对于阅读 XML,我使用 www.nsftools.com/tips/XmlNodeReader/ 它可以快速引入节点。读取节点后,您可以将值放入 NotesDocument。
我发现创建 JSON 的最佳方法是通过http://www.openntf.org/internal/home.nsf/release.xsp?action=openDocument&documentId=543656F34C821A2A862576650054BDC2
如果您收到一个 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 类。非常简单。
将 xml 或 json 文件(不确定 json 是否可以工作)放在 domino 服务器的 html 部分的根目录中是否是一个想法。
并使用某种提要阅读器来创建文档。您将需要一个包含字段的表单或在您的 xml 中更改它们,以便您可以使用已有的表单。
我假设您想要现有应用程序中的数据。
我手头没有任何代码,抱歉。
但西蒙有一个很好的建议。史蒂文斯建议的教程值得研究。
希望能帮助到你。就我个人而言,我很想知道你是否成功了,当然还有你是如何做到的。