Java中类的动态创建

Java中类的动态创建,java,dynamic,reflection,xml-parsing,Java,Dynamic,Reflection,Xml Parsing,可能重复: 我对Java中的反射概念有一个疑问 我正在尝试用Java创建一个SAXXML解析器。需要做的是根据XML创建一个包含字段的新类,并在解析时使用该类。 但是这种方法将非常特定于所选择的XML 我正在思考的是,是否有任何方法可以编写一个XML(SAX)解析器,用于处理所有可能的XML?i、 例如,我需要动态创建一个包含XML中字段的类,并使用同一个类来解析XML文件 我希望我能清楚地提出我的问题 谢谢。我以前也遇到过类似的情况,但我的xml解析器需要一些配置。 我的方法是:a)解析引擎

可能重复:

我对Java中的反射概念有一个疑问

我正在尝试用Java创建一个SAXXML解析器。需要做的是根据XML创建一个包含字段的新类,并在解析时使用该类。 但是这种方法将非常特定于所选择的XML

我正在思考的是,是否有任何方法可以编写一个XML(SAX)解析器,用于处理所有可能的XML?i、 例如,我需要动态创建一个包含XML中字段的类,并使用同一个类来解析XML文件

我希望我能清楚地提出我的问题


谢谢。

我以前也遇到过类似的情况,但我的xml解析器需要一些配置。 我的方法是:a)解析引擎,b)配置

配置部分围绕要通过属性传递的XPath表达式构建。 这些是静态XPath表达式,如果输入xml消息发生更改,则需要更新

解析引擎部分执行这些表达式来查询xml元素、属性等,以填充java对象

编辑:

例如,给定的xml(简化,无命名空间):


这将为您提供“1.0.0”作为结果对象。

@galuano1 oh。。不,谢谢你的主意。。我现在就去做。好的。。您是否能够使用SAXXML解析API,或者需要转换到JAXB或其他API?我使用的是XPath表达式。没有SAX、JAXB或JIBX。答案用示例更新
<msg>
    <something>
        <somenode>
            <version>1.0.0</version>
        </somenode>
    </something>
</msg>
String myXpExpr = "//version/text()";  // make it .properties
Document xmlDocument = DocumentBulderFactory.newInstance().newDocumentBuilder().parse(xmlInputStream);
XPath xpXPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpXPath.compile(myXpExpr);
resultObject = expr.evaluate(xmlDocument, returnTypeQName);