使用XPATH重命名XML文件中的重构

时间:2014-06-04 15:57:17

标签: java xml xpath

我想为输入XML文件实现重命名重构。我有一个XML文件,实际上是输入Java程序的表示。简单Java程序的XML文件如下:

public class main {
   private String str;
   public void print() {
        str= "Hello World!";
        System.out.println(str);}
}

生成的XML文件如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<unit xmlns="http://www.sdml.info/srcML/src" language="Java" filename="main.java">
<class><specifier>public</specifier> class <name>main</name> 
<block>{

<decl_stmt><decl><type><specifier>private</specifier><name>String</name></type> <name>str</name></decl>;</decl_stmt>

<function><type><specifier>public</specifier> <name>void</name></type> <name>print</name><parameter_list>()</parameter_list> <block>{
    <expr_stmt><expr><name>str</name> = "Hello World!"</expr>;</expr_stmt>
    <expr_stmt><expr><call><name><name>System</name>.<name>out</name>.<name>println</name></name><argument_list>(<argument><expr><name>str</name></expr></argument>)</argument_list></call></expr>;</expr_stmt>     
}</block></function>
}</block></class>
</unit>

我想选择一个元素,然后使用XPath表达式查找所有引用。例如,在上面的例子中,我想选择字段&#34; str&#34;然后返回使用它的两个地方。然后我可以将它们全部重命名为新名称。

请注意,我无法向XML文件添加新的详细信息(例如向字段添加ID和向其引用添加IDref)。上面的XML文件是我可以为上面的输入Java程序提供的所有信息。

另一个注意事项是,如果我定义一个名为&#34; str&#34;的变量。在功能&#34;打印&#34;然后两个对str的引用都被引用到这个变量而不是字段。因此,它们不是该领域的参考。 ( - :

如果我的程序基于XPath查询,那么任何人都可以帮助我使用XPath解决方案是很好的。但是,如果有另一种简单的方法,例如我可以用来以编程方式在XML文件中实现重命名重构,请告诉我。

0 个答案:

没有答案