如何从文本文件中复制XML节点并将其粘贴到Eclipse中的EMF eObject



我有一个包含多个XML节点的文本文件。我希望每个节点被复制/转换为EMF对象,并粘贴到Eclipse编辑器中(使用 ctrl c 在文本文件和 ctrl v 在日食编辑器中)。但是我无法在Eclipse编辑中粘贴。你能帮我吗?

我也有类似的问题。您可以读取XML模型并将其转换为XMI模型。这样,您需要将下一个代码实施到EMF项目中。我创建了一个新类,并生成了一个主要方法,包括此代码:

    //Generate your URI
    ResourceFactoryImpl factory = new ResourceFactoryImpl();
    URI sourceURI = URI.createURI("your xml path");
    Resource loadResource = (ResourceImpl)factory.createResource(sourceURI);
    System.out.println(sourceURI.path());
    //Add loading options
    Map<String, Boolean> options = new HashMap<String, Boolean>(); 
    options.put(XMLResource.OPTION_SUPPRESS_DOCUMENT_ROOT, true);
    //Load XML
    loadResource.load( options);
    //Create XMI output
    URI targetURI = URI.createURI("your xmi path");
    Resource resourceOut = new ResourceImpl(targetURI);
    //Generating your EObjects from XML model
    EList listObj = loadResource.getContents();
    EObject obj = (EObject) listObj.get(0);
    resourceOut.getContents().add(obj);
    resourceOut.save(options);

请记住,您需要从生态模型中注册epackages。因此,右键单击您的.ecore metamodel,然后选择选项"注册epackages"。如果此步骤有问题,您将获得org.eclipse.emf.ecore.resource.resource $ iowrappedexception:带URI'http://something.com的包装:找不到。(XML路径)。

结论:

  1. 将方法调用到您的主要方法中代码。
  2. 注册您的epackages。
  3. 如果您获得异常,将URI数据解析到XML中。

pd:本文中介绍的代码最初由@VictormPav创建。我添加了一些修改。

最新更新