gpt4 book ai didi

java - 使用 EMF 以字符串格式解析 XML

转载 作者:行者123 更新时间:2023-12-04 05:25:25 25 4
gpt4 key购买 nike

我已经使用 EMF 生成基于 XSD 的访问函数。我可以在生成的示例中看到如何从磁盘文件加载输入。但是,我要解析的 XML 存储在字符串中。有没有什么办法可以在不将字符串转储到文件中然后再读回的情况下继续进行?

最佳答案

这是一个示例方法,它接受您的 modelString 和解析 xml 并返回 EObject 的 ECorePackage 实例。

public static EObject loadEObjectFromString(String myModelXml, EPackage ePackage) throws IOException { 
// Create a ResourceSet
ResourceSet resourceSet = new ResourceSetImpl();
// register XMIRegistryResourceFactoryIml
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
(Resource.Factory.Registry.DEFAULT_EXTENSION,
new XMIResourceFactoryImpl());
// register your epackage to the resource set so it has a reference to your ecore
// you can get an instance to your epackage by calling YourEPackageClass.getInstace();
resourceSet.getPackageRegistry().put(ePackage.getNsURI(), ePackage);
Resource resource = resourceSet.createResource(URI.createURI("*.modelextension"));
resource.load(new URIConverter.ReadableInputStream(myModelXml), null);
// return the root model object and there you have it, all you need is to
// cast it to the right EObject based on your model
return resource.getContents().get(0);
}

关于java - 使用 EMF 以字符串格式解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com