package org.sky.auto.text.read; public class StringBlock extends Block{ private String text; private ChainLink chain; public StringBlock(String text){ this.setText(text); chain=new ChainLink(); } public String getText() { return text; } public void setText(String text) { this.text = text; } /**取得元素的定位方式*/ public ChainLink getLocation(){ if(getType()!=null){ chain.setType(getType()); }else{ chain.setType("element"); } String entity=getEntity(); String[] text=entity.split(Block.SPLIT); for(String str:text){ if(str.toLowerCase().startsWith("css")||str.toLowerCase().startsWith("id")||str.toLowerCase().startsWith("linktext")|| str.toLowerCase().startsWith("name")||str.toLowerCase().startsWith("class") ||str.toLowerCase().startsWith("partial") ||str.toLowerCase().startsWith("tagname")){ if(str.toLowerCase().contains(Block.ELEMENT_LINK)){ if(str.contains(ELEMENT_LINK)){ //获取元素定位的行内容,并且切分元素的链/ String[] strs=str.split(Block.ELEMENT_LINK); //获取到单个定位元素的内容 chain.save(strs); }else{ chain.save(str); } }else{ chain.save(str); } } } return chain; } /**得到这个块的名称,也就是xml里面的ID值*/ public String getLocationName(){ String name = getText().substring(0,getText().indexOf(BLOCK_START)); return name; } /**返回定义的type类型*/ public String getType(){ String entity = getEntity(); String[] text=entity.split(Block.SPLIT); for(String str: text){ if(str.toLowerCase().contains(Block.TYPE)){ String[] strs=str.split(":"); return strs[1]; } } return null; } /**得到内容的实体*/ private String getEntity(){ String entity = getText().substring(getText().indexOf(BLOCK_START)+1,getText().lastIndexOf(BLOCK_END)); return entity; } public void setChain(ChainLink chain) { this.chain = chain; } /**返回元素的描述*/ public String getDescription(){ String entity = getEntity(); String[] text=entity.split(Block.SPLIT); for(String str: text){ if(str.toLowerCase().contains("des")){ String[] strs=str.split(":"); return strs[1]; } } return null; } }