易于生成xpath的类是什么
                            来源:爱站网时间:2021-12-02编辑:网友分享
                        
                        
                        爱站技术小编想编写一个用于生成xpath的类。该类应具有2个方法:down(String string)和child(String string)。具体的操作皆在下文,喜欢的朋友可以来参考参考。
                        问题描述
我想编写一个用于生成xpath的类。该类应具有2个方法:down(String string)和child(String string)。
我想使用这样的类:
XpathBuilder.child("div").down("button").child("a").child("span")
//That should return a String: div//button/a/span
有人可以建议我该怎么做吗?
解决方法:
您可以看一下构建器模式。
这里是一个示例(使用内部构建器类):
public class XpathBuilder {
    public Builder builder() {
        return new XpathBuilder.Builder();
    }
    class Builder {
        private final StringBuilder sb;
        Builder() {
            sb = new StringBuilder();
        }
        public Builder child(String name) {
            sb.append("/").append(name);
            return this;
        }
        public Builder down(String name) {
            sb.append("//").append(name);
            return this;
        }
        public String build() {
            return sb.toString();
        }
    }
}
可以这样称呼:
String path = new XpathBuilder().builder().child("div").down("button").child("a").child("span").build();
这是另一个示例(使用构建器和单例模式::
public class XpathBuilder {
    private final StringBuilder sb;
    private static XpathBuilder instance;
    private XpathBuilder() {
        sb = new StringBuilder();
    }
    public static XpathBuilder newInstance() {
        if (instance == null) {
            instance = new XpathBuilder();
        }
        return instance;
    }
    public XpathBuilder child(String name) {
        sb.append("/").append(name);
        return this;
    }
    public XpathBuilder down(String name) {
        sb.append("//").append(name);
        return this;
    }
    public String build() {
        return sb.toString();
    }
}
可以这样称呼:
String path = XpathBuilder.newInstance().child("div").down("button").child("a").child("span").build();
以上内容就是爱站技术频道小编为大家分享的易于生成xpath的类是什么,看完以上分享之后,大家应该都知道易于生成xpath的类是什么了吧。
 
                    