private static Object valueWrap(final Class<?> cls, final Element element) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { Field[] fie = cls.getDeclaredFields(); Object obj = cls.newInstance(); for (Field fi : fie) { Element ele = element.element(fi.getName()); String value = ""; if (ele == null) { value = element.getText(); if (StringUtils.isBlank(value)) { value = element.attributeValue(fi.getName()); } } else { value = ele.getText(); if (StringUtils.isBlank(value)) { value = ele.attributeValue(fi.getName()); } } String methodName = "set" + upperFirst(fi.getName()); if (containsMethod(cls, methodName)) { cls.getMethod(methodName, String.class).invoke(obj, value); } } return obj; }
public static Set<String> getSamplesForSubmission(Element submission) { Set<String> sampleIDs = new HashSet<String>(); if (XMLUtils.getChildrenByName(submission, "SUBMISSION_LINKS") == null || XMLUtils.getChildrenByName(submission, "SUBMISSION_LINKS").size() == 0) { log.info("No SUBMISSION_LINKS found for submission"); } for (Element studyLinks : XMLUtils.getChildrenByName(submission, "SUBMISSION_LINKS")) { if (XMLUtils.getChildrenByName(studyLinks, "SUBMISSION_LINK") == null || XMLUtils.getChildrenByName(studyLinks, "SUBMISSION_LINK").size() == 0) { log.info("No SUBMISSION_LINK found for submission"); } for (Element studyLink : XMLUtils.getChildrenByName(studyLinks, "SUBMISSION_LINK")) { if (XMLUtils.getChildrenByName(studyLink, "XREF_LINK") == null || XMLUtils.getChildrenByName(studyLink, "XREF_LINK").size() == 0) { log.info("No XREF_LINK found for submission"); } for (Element xrefLink : XMLUtils.getChildrenByName(studyLink, "XREF_LINK")) { Element db = XMLUtils.getChildByName(xrefLink, "DB"); Element id = XMLUtils.getChildByName(xrefLink, "ID"); log.info(db.getText() + " " + id.getText()); if (db.getTextTrim().equals("ENA-SAMPLE")) { if (db != null && db.getTextTrim().equals("ENA-SAMPLE") && id != null) { log.info("Processing sample " + id.getText()); sampleIDs.addAll(getIdentifiers(id.getText())); } } } } } return sampleIDs; }
/** 功能:XML报文解析函数 */ public static HashMap GetMessage(String url) { SAXReader reader = new SAXReader(); Document doc = null; HashMap hm = null; try { InputStream in = new URL(url).openStream(); if (in != null) { doc = reader.read(in); hm = new HashMap(); Element root = doc.getRootElement(); for (Iterator it = root.elementIterator(); it.hasNext(); ) { Element e = (Element) it.next(); if (e.nodeCount() > 1) { HashMap hm1 = new HashMap(); for (Iterator it1 = e.elementIterator(); it1.hasNext(); ) { Element e1 = (Element) it1.next(); hm1.put(e1.getName(), e1.getText()); } hm.put(e.getName(), hm1); } else { hm.put(e.getName(), e.getText()); } } } doc.clearContent(); in.close(); } catch (DocumentException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return hm; }
/*.................................................................................................................*/ public String jobStatusFromResponse(Document cipresResponseDoc) { String status = "Status not available"; Element element = cipresResponseDoc.getRootElement().element("terminalStage"); if (element != null) { status = element.getText(); if ("true".equalsIgnoreCase(status)) return JOBCOMPLETED; } element = cipresResponseDoc.getRootElement().element("messages"); if (element == null) return status; List entries = element.elements("message"); String reportedJobID = ""; for (Iterator iter = entries.iterator(); iter.hasNext(); ) { Element nextEntry = (Element) iter.next(); if (nextEntry != null) status = nextEntry.elementText("stage"); } element = cipresResponseDoc.getRootElement().element("minPollIntervalSeconds"); if (element != null) { minPollIntervalSeconds = MesquiteInteger.fromString(element.getText()); if (!MesquiteInteger.isCombinable(minPollIntervalSeconds) || minPollIntervalSeconds <= 0) minPollIntervalSeconds = defaultMinPollIntervalSeconds; } if (JOBCOMPLETED.equalsIgnoreCase(status)) return JOBCOMPLETED; return status; }
public static Map<String, ArrayList<CmisProperty>> getCmisRepositoryProperties( Element feedEntry) { Map<String, ArrayList<CmisProperty>> infoServerList = new HashMap<String, ArrayList<CmisProperty>>(); ArrayList<CmisProperty> propsList = new ArrayList<CmisProperty>(); ArrayList<CmisProperty> propsCapabilities = new ArrayList<CmisProperty>(); ArrayList<CmisProperty> propsACLCapabilities = new ArrayList<CmisProperty>(); Element objectElement = feedEntry.element(CMISRA_REPO_INFO); if (objectElement != null) { List<Element> properties = objectElement.elements(); for (Element property : properties) { if (CMIS_REPO_CAPABILITES.equals(property.getQName())) { List<Element> props = property.elements(); for (Element prop : props) { propsCapabilities.add( new CmisProperty( null, null, null, prop.getName().replace("capability", ""), prop.getText())); } } else if (CMIS_REPO_ACL_CAPABILITES.equals(property.getQName())) { /*List<Element> props = property.elements(); for (Element prop : props) { propsACLCapabilities.add(new CmisProperty(null, null, null, prop.getName().replace("cmis:", ""), prop.getText())); }*/ } else { propsList.add(new CmisProperty(null, null, null, property.getName(), property.getText())); } } infoServerList.put(Server.INFO_GENERAL, propsList); infoServerList.put(Server.INFO_CAPABILITIES, propsCapabilities); infoServerList.put(Server.INFO_ACL_CAPABILITIES, propsACLCapabilities); } return infoServerList; }
/** * 根据参数给类赋值 * * @param object * @param type * @param field_name * @param element * @return */ private static Object newObjectByType( Object object, String type, String field_name, Element element) { try { if (type.endsWith("java.lang.String")) { // 处理String类型 PropertyUtils.setProperty(object, field_name, element.getText()); } else if (type.endsWith("java.lang.Integer")) { // 处理integer System.out.println(type.endsWith("java.lang.Integer")); PropertyUtils.setProperty(object, field_name, Integer.parseInt(element.getText())); } else if (type.endsWith("java.util.Set")) { Set set = new HashSet(); // 处理set List<Element> e_list = element.elements(); for (Iterator iterator = e_list.iterator(); iterator.hasNext(); ) { Element object2 = (Element) iterator.next(); generateBean(object2); set.add(generateBean(object2)); PropertyUtils.setProperty(object, field_name, set); } } else if (type.startsWith(domain_package)) { if (getBeanById(element) != null) { Class cls = Class.forName(domain_package_dot + element.getName()); PropertyUtils.setProperty( object, field_name.toLowerCase(), cls.cast(getBeanById(element))); } } } catch (Exception e) { log.error(domain_package_dot + element.getName() + "类不存在", e); } return object; }
/** * 通过Title 查询是相似分类信息 * * @param xml * @return * @throws DocumentException */ public static List<TradingReseCategory> selectCategoryByKey(String xml) throws Exception { List<TradingReseCategory> litrc = new ArrayList(); // 商品分类目录查询 Document document = formatStr2Doc(xml); Element rootElt = document.getRootElement(); if (rootElt == null) { return litrc; } Element recommend = rootElt.element("SuggestedCategoryArray"); if (recommend == null) { return litrc; } Iterator<Element> ite = recommend.elementIterator("SuggestedCategory"); while (ite.hasNext()) { Element ele = ite.next(); Element cate = ele.element("Category"); Element PercentItemFound = ele.element("PercentItemFound"); TradingReseCategory trc = new TradingReseCategory(); trc.setId(Long.parseLong(cate.elementText("CategoryID"))); trc.setCategoryId(cate.elementText("CategoryID")); Iterator<Element> ites = cate.elementIterator("CategoryParentName"); String cateName = ""; while (ites.hasNext()) { Element ent = ites.next(); cateName = cateName + ent.getText() + ":"; } trc.setCategoryKey(PercentItemFound.getText() + "%"); trc.setCategoryName(cateName + cate.elementText("CategoryName")); litrc.add(trc); } return litrc; }
@Override protected TreeNode createFromXmlElement(TreeNode parent, Element element) { Find find = new Find(); Element methodElement = (Element) element.selectSingleNode("method"); find.setMethod(getMethod(methodElement.getText())); Element valueElement = (Element) element.selectSingleNode("value"); find.setValue(valueElement.getText()); return find; }
private void verifyFileSystem(File teamsXmlFile, boolean nopublic) { assertTrue("teams.xml".equals(teamsXmlFile.getName())); numberOfTeamsXmls++; File teamsDir = teamsXmlFile.getParentFile(); File homeDir = teamsDir.getParentFile(); try { SAXReader reader = new SAXReader(); Document inDoc = reader.read(teamsXmlFile); Element root = inDoc.getRootElement(); assertTrue("teamManager".equals(root.getName())); List<Element> elements = (List<Element>) root.elements(); for (Element element : elements) { if ("team".equals(element.getName())) { List<Element> children = (List<Element>) element.elements(); File teamDir = null; for (Element child : children) { String childName = child.getName(); if ("name".equals(childName)) { // team must exist if ("public".equals(child.getText())) { if (nopublic) { assertTrue("Public team found", false); } teamDir = homeDir; } else { teamDir = new File(teamsDir, child.getText()); } assertTrue("Not exists " + teamDir.getAbsolutePath(), teamDir.exists()); assertTrue("Not a dir " + teamDir.getAbsolutePath(), teamDir.isDirectory()); } else if ("job".equals(childName)) { // we expect team name to be written before jobs assertNotNull(teamDir); Element idElement = child.element("id"); assertNotNull(idElement); String id = idElement.getText(); File jobDir = new File(new File(teamDir, "jobs"), id); assertTrue("Not exists " + jobDir.getAbsolutePath(), jobDir.exists()); assertTrue("Not exists " + jobDir.getAbsolutePath(), jobDir.isDirectory()); } } } } if (nopublic) { File jobsDir = new File(homeDir, "jobs"); if (jobsDir.exists() && jobsDir.isDirectory()) { for (File file : jobsDir.listFiles()) { if (file.isDirectory()) { assertTrue("Public job found at " + file.getAbsolutePath(), false); } } } } } catch (DocumentException ex) { Logger.getLogger(FindTest.class.getName()).log(Level.SEVERE, null, ex); } }
/** * Create new Meeting Workspace on Alfresco server * * @param soapRequest Vti soap request ({@link VtiSoapRequest}) * @param soapResponse Vti soap response ({@link VtiSoapResponse}) */ public void execute(VtiSoapRequest soapRequest, VtiSoapResponse soapResponse) throws Exception { if (logger.isDebugEnabled()) logger.debug("Soap Method with name " + getName() + " is started."); // mapping xml namespace to prefix SimpleNamespaceContext nc = new SimpleNamespaceContext(); nc.addNamespace(prefix, namespace); nc.addNamespace(soapUriPrefix, soapUri); Element requestElement = soapRequest.getDocument().getRootElement(); // getting title parameter from request if (logger.isDebugEnabled()) logger.debug("Getting title from request."); XPath titlePath = new Dom4jXPath(buildXPath(prefix, "/CreateWorkspace/title")); titlePath.setNamespaceContext(nc); Element title = (Element) titlePath.selectSingleNode(requestElement); if (title.getText() == null || title.getText().length() < 1) { throw new RuntimeException("Site name is not specified. Please fill up subject field."); } // getting templateName parameter from request if (logger.isDebugEnabled()) logger.debug("Getting templateName from request."); XPath templateNamePath = new Dom4jXPath(buildXPath(prefix, "/CreateWorkspace/templateName")); templateNamePath.setNamespaceContext(nc); Element templateName = (Element) templateNamePath.selectSingleNode(requestElement); // getting lcid parameter from request if (logger.isDebugEnabled()) logger.debug("Getting lcid from request."); XPath lcidPath = new Dom4jXPath(buildXPath(prefix, "/CreateWorkspace/lcid")); lcidPath.setNamespaceContext(nc); Element lcid = (Element) lcidPath.selectSingleNode(requestElement); String siteName = handler.createWorkspace( title.getText(), templateName.getText(), Integer.parseInt(lcid.getText()), getTimeZoneInformation(requestElement), (SessionUser) soapRequest.getSession().getAttribute(SharepointConstants.USER_SESSION_ATTRIBUTE)); // creating soap response Element root = soapResponse.getDocument().addElement("CreateWorkspaceResponse", namespace); root.addElement("CreateWorkspaceResult") .addElement("CreateWorkspace") .addAttribute( "Url", getHost(soapRequest) + soapRequest.getAlfrescoContextName() + "/" + siteName); if (logger.isDebugEnabled()) { logger.debug("SOAP method with name " + getName() + " is finished."); } }
/** * 遍历整个XML文件,获取所有节点的值与其属性的值,并放入HashMap中 * * @param filename String 待遍历的XML文件(相对路径或者绝对路径) * @param hm HashMap 存放遍历结果,格式:<nodename,nodevalue>或者<nodename+attrname,attrvalue> */ public void iterateWholeXML(String filename, HashMap<String, String> hm) { SAXReader saxReader = new SAXReader(); try { Document document = saxReader.read(new File(filename)); Element root = document.getRootElement(); // 用于记录学生编号的变量 int num = -1; // 遍历根结点(students)的所有孩子节点(肯定是student节点) for (Iterator iter = root.elementIterator(); iter.hasNext(); ) { Element element = (Element) iter.next(); num++; // 获取person节点的age属性的值 Attribute ageAttr = element.attribute("age"); if (ageAttr != null) { String age = ageAttr.getValue(); if (age != null && !age.equals("")) { hm.put(element.getName() + "-" + ageAttr.getName() + num, age); } else { hm.put(element.getName() + "-" + ageAttr.getName() + num, "20"); } } else { hm.put(element.getName() + "-age" + num, "20"); } // 遍历student结点的所有孩子节点(即name,college,telphone,notes),并进行处理 for (Iterator iterInner = element.elementIterator(); iterInner.hasNext(); ) { Element elementInner = (Element) iterInner.next(); if (elementInner.getName().equals("college")) { hm.put(elementInner.getName() + num, elementInner.getText()); // 获取college节点的leader属性的值 Attribute leaderAttr = elementInner.attribute("leader"); if (leaderAttr != null) { String leader = leaderAttr.getValue(); if (leader != null && !leader.equals("")) { hm.put(elementInner.getName() + "-" + leaderAttr.getName() + num, leader); } else { hm.put(elementInner.getName() + "-" + leaderAttr.getName() + num, "leader"); } } else { hm.put(elementInner.getName() + "-leader" + num, "leader"); } } else { hm.put(elementInner.getName() + num, elementInner.getText()); } } } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public void handleMessage(MessageI message, String sender) { if (!MessageXML.class.isInstance(message)) { return; } byte[] msg = (byte[]) message.getMessage(); SAXReader saxReader = new SAXReader(); Document document = null; try { document = saxReader.read(new ByteArrayInputStream(msg)); } catch (DocumentException ex) { ex.printStackTrace(System.out); } /** Reading the message XML, getting the necessary fields. */ Element root = document.getRootElement(); String query; Element queryNumber = root.element(MessageFields.QUERY_NUMBER); List<String> extra = new ArrayList(); Element queryE = root.element(MessageFields.QUERY); /** If the message has not the query element, then it is an invalid message ignore it. */ if (queryE == null) { return; } query = queryE.getText(); List<Element> extrafields = root.elements(MessageFields.EXTRAFIELD); if (extrafields == null) { extrafields = new ArrayList(); } for (Element extrafield : extrafields) { extra.add(extrafield.getText()); } /** Local search. */ Map<Integer, Object> parameters = new HashMap<Integer, Object>(); parameters.put(TaskRequestsConstants.P_QUERY, query); parameters.put(TaskRequestsConstants.P_EXTRAFIELDS, extra); parameters.put(TaskRequestsConstants.P_REQUESTER_ADDRESS, sender); parameters.put(TaskRequestsConstants.P_QUERY_NUMBER, queryNumber.getText()); TaskRequest task = new TaskRequest(TaskRequestsConstants.T_QUERY_LOCALLY, this.plugin.getName(), parameters); task.addObserver(this); this.plugin.getTaskRequestsList().addTask(task); // ArrayList<SearchResult> resultsAll = IndexEngine.getInstance().search(query, extra); // }
private static Short getShortValue(final Document doc, final String xpath) { try { final Element element = (Element) doc.selectSingleNode(xpath); Short value = Short.MIN_VALUE; if (element != null && !StringUtils.isEmpty(element.getText())) { value = Short.parseShort(element.getText()); } return value; } catch (Exception e) { logger.error( messages.getErrorString( "EmailConfigurationXml.ERROR_0001_ERROR_PARSING_DATA", e.getLocalizedMessage())); } return Short.MIN_VALUE; }
/** * 设置配置项属性值 * * @param id 字段ID * @param value 字段值 * @param operName 操作人 */ protected void setAttribute(String id, String value, String operName) { Element el = (Element) this.xmlDoc.getRootElement().selectSingleNode("./fields"); if (el == null) { el = this.xmlDoc.getRootElement().addElement("fields"); } String oldVal = null; String newVal = (value == null) ? "" : value; Element el2 = (Element) el.selectSingleNode("./field[@id='" + id + "']"); if (el2 == null) { el2 = el.addElement("field"); el2.addAttribute("id", id); } else { oldVal = el2.getText(); } if (newVal.equals(oldVal)) return; el2.setText(newVal); this.attr.put(id, newVal); FieldInfo field = FieldManager.getFieldById("ITSM", id); if (field != null) { if (oldVal != null) { if (!field.isEncrypt()) oldVal = field.getHtmlCode(oldVal); } if (!field.isEncrypt()) newVal = field.getHtmlCode(newVal); } addHistory(id, oldVal, newVal, operName); }
private void assertBoolean(String value) throws Exception { Document doc = reader.read(getXmlFile("<types:test-boolean>" + value + "</types:test-boolean>")); Element elem = doc.getRootElement().element("test-boolean"); assertEquals(value, elem.getText()); }
/** * 解析微信xml消息 * * @param content 微信端的xml数据 * @return 转换之后的对象 */ public static ReceiveXmlEntity getMsgEntity(String content) { ReceiveXmlEntity msg = null; try { // 将字符串转换为XML对象 Document doc = DocumentHelper.parseText(content); // 获取文档的节点 Element root = doc.getRootElement(); // 遍历根节点下所有的子节点 Iterator<?> iter = root.elementIterator(); // 利用反射机制,调用对象的set方法 Class<?> c = Class.forName("com.wechat.entity.ReceiveXmlEntity"); // 创建实体类 msg = (ReceiveXmlEntity) c.newInstance(); while (iter.hasNext()) { Element ele = (Element) iter.next(); // 获取set方法中的参数字段(实体类的属性) Field filed = c.getDeclaredField(ele.getName()); // 获取set方法 Method method = c.getDeclaredMethod("set" + ele.getName(), filed.getType()); // 调用set方法 method.invoke(msg, ele.getText()); } } catch (Exception e) { e.printStackTrace(); } return msg; }
/** * 获得指定元素下的某个子元素 * * @param element 指定元素 * @param idOrText id或者text的值 * @param type 根据id找?还是text? * @return 子元素 */ public static Element getElement(Element element, String idOrTextString, TiHuanType type) { Element re = null; List<?> list = element.elements(); for (Iterator<?> its = list.iterator(); its.hasNext(); ) { if (re != null) { break; } Element chileEle = (Element) its.next(); String ls = null; if (type == TiHuanType.ID) { ls = chileEle.attributeValue("tihuan"); } if (type == TiHuanType.TEXT) { ls = chileEle.getText(); } if (ls != null && ls.equals(idOrTextString)) { re = chileEle; } else { re = getElement(chileEle, idOrTextString, type); } } return re; }
@Override protected TreeNode createFromXmlElement(TreeNode parent, Element element) { Class classs = new Class(); Element pathElement = (Element) element.selectSingleNode("filePath"); classs.setClassFilePath(pathElement.getText()); return classs; }
/** * 获取某一节点的文本内容; * * @param inputxml xml文件; * @param XPath * @return */ @SuppressWarnings("unchecked") public String[] getNodeTextValue(File inputxml, String XPath) { String nodeTextValue = ""; // 储存节点属性值; if (XPath.indexOf("@") >= 0) { return null; } SAXReader saxReader = new SAXReader(); Document document = null; try { document = saxReader.read(inputxml); List list = document.selectNodes(XPath); Node n = document.selectSingleNode(XPath); n.getStringValue(); Iterator it = list.iterator(); while (it.hasNext()) { Element text = (Element) it.next(); nodeTextValue += text.getText() + ","; } } catch (Exception e) { e.printStackTrace(); } if (nodeTextValue.length() > 0) { nodeTextValue = nodeTextValue.substring(0, nodeTextValue.length() - 1); } return nodeTextValue.split(","); }
protected String resolvePath(Element el, String xpr) { Object ob = resolve(el, xpr); if (ob == null) { for (int i = 0; i < docsStack.size(); i++) { if (docsStack.get(i).isFolder()) { return docsStack.get(i).getPathAsString(); } } } else { if (ob instanceof DocumentModel) { return ((DocumentModel) ob).getPathAsString(); } else if (ob instanceof Node) { if (ob instanceof Element) { Element targetElement = (Element) ob; DocumentModel target = elToDoc.get(targetElement); if (target != null) { return target.getPathAsString(); } else { return targetElement.getText(); } } else if (ob instanceof Attribute) { return ((Attribute) ob).getValue(); } else if (ob instanceof Text) { return ((Text) ob).getText(); } else if (ob.getClass().isAssignableFrom(Attribute.class)) { return ((Attribute) ob).getValue(); } } else { return ob.toString(); } } return rootDoc.getPathAsString(); }
private void buildRelaMap(Element centerNode) { String concept = centerNode.elementText("Label"); Element relaXML = ConceptEngine.getContent(concept, "关联词"); // <result db="中医药学语言系统" rela="被…使用">论利湿清热</result> String objectUri = ConceptEngine.skosPrefix + "#Concept"; List relas = relaXML.elements(); for (int i = 0; i < relas.size() && i < count; i++) { Element rela = (Element) relas.get(i); String content = rela.getText(); Element node = null; Boolean isNewNode = true; if (nodes.containsKey(content)) { Element e = (Element) nodes.get(content); if (e.elementText("TypeUri").equals(objectUri)) { isNewNode = false; node = e; } } if (isNewNode) { node = nodeArray.addElement("Node").addAttribute("id", nodeID++ + ""); node.addElement("Label").addText(content); node.addElement("TypeUri").addText(objectUri); node.addElement("Type").addText("事物"); nodes.put(content, node); } Element edge = edgeArray.addElement("Edge").addAttribute("id", edgeID++ + ""); edge.addElement("Label").addText(rela.attributeValue("rela")); edge.addElement("TypeUri").addText("rela"); edge.addElement("FromID").addText(centerNode.attributeValue("id")); edge.addElement("ToID").addText(node.attributeValue("id")); } }
/** * Faz uma busca a partir do cep enviado, no site <a href="http://www.republicavirtual.com.br" * target="_blank">republicavirtual.com.br</a>, retornando o resultado em um objeto {@link * WebServiceCep}. <br> * <br> * N�o se faz necess�rio formata��es, a string pode ser enviada em qualquer formata��o, pois s� * ser�o consideradas os primeiros 8 numeros da string. <br> * Por Exemplo: <br> * Uma <tt>{@link String} "14.568-910"</tt> � automaticamente passada para <tt>"14568910"</tt>. * <br> * Uma <tt>{@link String} "1%4#5?55%16a8&910"</tt> � automaticamente passada para * <tt>"14555168"</tt>, s� levando em conta os primeiros 8 n�meros. * * @param cep N�mero do cep a ser carregado. S� ser�o considerados os primeiros 8 n�meros da * {@link String} enviada. Todos os caracters n�o num�ricos ser�o removidos, e a string ser� * truncada caso seja maior que 8 caracters. * @return {@link WebServiceCep} contendo as informa��es da pesquisa. */ public static WebServiceCep searchCep(String cep) { cep = cep.replaceAll("\\D*", ""); // To numeric digits only if (cep.length() > 8) cep = cep.substring(0, 8); WebServiceCep loadCep = new WebServiceCep(cep); try { XmlEnums enums = new XmlEnums(); for (Element e : getElements(cep)) enums.getXml(e.getQualifiedName()).setCep(e.getText(), loadCep); } catch (DocumentException ex) { if (ex.getNestedException() != null && ex.getNestedException() instanceof java.net.UnknownHostException) { loadCep.setResultText("Site não encontrado."); loadCep.setResulCode(-14); } else { loadCep.setResultText("Não foi possivel ler o documento xml."); loadCep.setResulCode(-15); } loadCep.setExceptio(ex); } catch (MalformedURLException ex) { loadCep.setExceptio(ex); loadCep.setResultText("Erro na formação da url."); loadCep.setResulCode(-16); } catch (Exception ex) { loadCep.setExceptio(ex); loadCep.setResultText("Erro inesperado."); loadCep.setResulCode(-17); } return loadCep; }
private void parseHeader(Element headerElement) { if (RecordXMLReader.getBooleanAttribute("omitbinarydata", headerElement)) { throw new IllegalArgumentException( "XML files with omitbinarydata flag set cannot be transformed back to SWF!"); } short swfVersion = RecordXMLReader.getShortAttribute("swfversion", headerElement); swfDocument.setVersion(swfVersion); swfDocument.setCompressed(RecordXMLReader.getBooleanAttribute("compressed", headerElement)); Element framesElement = RecordXMLReader.getElement("frames", headerElement); swfDocument.setFrameCount(RecordXMLReader.getIntAttribute("count", framesElement)); swfDocument.setFrameRate(RecordXMLReader.getShortAttribute("rate", framesElement)); Element sizeElement = RecordXMLReader.getElement("size", framesElement); swfDocument.setFrameSize(RecordXMLReader.readRect(sizeElement)); Element backgroundColorElement = RecordXMLReader.getElement("bgcolor", headerElement); swfDocument.setBackgroundColor(RecordXMLReader.readRGB(backgroundColorElement)); if (swfVersion >= 8) { String access = RecordXMLReader.getStringAttribute("access", headerElement); if (access.equals("local")) { swfDocument.setAccessMode(SWFDocument.ACCESS_MODE_LOCAL); } else if (access.equals("network")) { swfDocument.setAccessMode(SWFDocument.ACCESS_MODE_NETWORK); } Element metadata = headerElement.element("metadata"); if (metadata != null) { swfDocument.setMetadata(Base64.decodeString(metadata.getText())); } } }
public void updateXMLbyId(String id, UpLoadFile pat) { String xmlStr = xml2String(); Document document = null; try { document = DocumentHelper.parseText(xmlStr); } catch (DocumentException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } Element rootElement = document.getRootElement(); String rootStrV = rootElement.getStringValue(); String rootStrT = rootElement.getText(); List<Element> elements = rootElement.elements("file"); for (Element ele : elements) { Element ide = ele.element("id"); if (id.equalsIgnoreCase(ide.getTextTrim())) { Element nameElement = ele.element("name"); Element crcElement = ele.element("crc"); Element urlElement = ele.element("url"); Element pathElement = ele.element("path"); Element isUpElement = ele.element("isUpFastFDS"); nameElement.setText(pat.getName()); crcElement.setText(pat.getCrc()); urlElement.setText(pat.getUrl()); pathElement.setText(pat.getPath()); isUpElement.setText(pat.getIsUpFastFDS()); } } writeXML(file, document); }
public static FetchGroupChatAuthorityBean parse(Document doc) { FetchGroupChatAuthorityBean bean = new FetchGroupChatAuthorityBean(); List list = doc.selectNodes("/iq/*[name()='query']/*[name()='operate']/*[name()='result']"); if (list != null && list.size() > 0) { String result = ((Element) list.get(0)).getText(); bean.setResult(result); } list = null; list = doc.selectNodes("/iq/*[name()='query']/*[name()='operate']/*[name()='message']"); if (list != null && list.size() > 0) { String message = ((Element) list.get(0)).getText(); bean.setMessage(message); } list = null; list = doc.selectNodes("/iq/*[name()='query']/*[name()='operate']/*[name()='roomjid']"); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { Element roomJid = (Element) list.get(i); List<String> marks = new ArrayList<String>(); bean.getAuthorityMap().put(roomJid.attributeValue("name"), marks); List markElements = roomJid.elements("mark"); if (markElements != null && markElements.size() > 0) { for (int j = 0; j < markElements.size(); j++) { Element mark = (Element) markElements.get(j); marks.add(mark.getText()); } } } } return bean; }
/** * 处理待跳转的url * * @param request * @param response * @param filterChain * @throws IOException */ public static boolean doRedirectUrl( ServletRequest request, ServletResponse response, FilterChain filterChain, String pUrl) { try { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; Element thisNode = null; for (Object nodeObj : RmLoadConfig.getRmClusterDoc() .selectNodes( "/rm/org.quickbundle.project.login.RmSsoLogin/redirectGroup[@enable='true']/redirectUrls/url")) { Element node = (Element) nodeObj; if (node.getText().equals(pUrl)) { thisNode = node; break; } } if (thisNode == null) { throw new RmRuntimeException("配置文件读取错误"); } String targetUrlPrefix = null; for (Object baseUrlObj : thisNode.selectNodes("../../redirectTargets/baseUrl")) { // TODO 可扩展为负载均衡算法 Element eleUrlPrefix = (Element) baseUrlObj; targetUrlPrefix = eleUrlPrefix.getText(); break; } if (targetUrlPrefix.length() == 0) { throw new RmRuntimeException("未配置跳转到的目标地址"); } // 带着sso信息跳转到目标服务器 if (RmClusterConfig.getLocalhostInfo() != null && targetUrlPrefix.startsWith(RmClusterConfig.getLocalhostInfo().getLocalhostUrlPath())) { // throw new RmRuntimeException("不能跳转到自身,可能导致循环跳转"); // 如果判断为跳到本机,忽略跳转 filterChain.doFilter(request, response); return true; } res.sendRedirect(rebuildUri(req, targetUrlPrefix)); return true; } catch (Exception e) { log.error("doRedirectUrl():" + e.toString() + " cause:" + e.getCause()); // save error request.setAttribute("org.apache.struts.action.EXCEPTION", e); return false; } }
/** * 修改XML文件中内容,并另存为一个新文件 重点掌握dom4j中如何添加节点,修改节点,删除节点 * * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件 * @return 返回操作结果, 0表失败, 1表成功 */ public int modifyXMLFile(String filename, String newfilename) { int returnValue = 0; SAXReader saxReader = new SAXReader(); Document doc = null; try { /** 修改内容之一:如果book节点中show参数的内容为yes,则修改成no */ /** 先用xpath查找对象 */ doc = saxReader.read(new File(filename)); List list = doc.selectNodes("/books/book/@show"); Iterator iter = list.iterator(); while (iter.hasNext()) { Attribute attr = (Attribute) iter.next(); if ("yes".equals(attr.getValue())) { attr.setValue("no"); } } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } /** 修改内容之二:把owner项内容改为Tshinghua 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个参数type */ List list = doc.selectNodes("/books/owner"); Iterator iter = list.iterator(); if (iter.hasNext()) { Element ownEle = (Element) iter.next(); ownEle.setText("Tshinghua"); Element dateEle = ownEle.addElement("date"); dateEle.setText("2012-12-17"); dateEle.addAttribute("type", "Gregorian calendar"); } /** 修改内容之三:若title内容为Dom4j Tutorials,则删除该节点 */ List list2 = doc.selectNodes("/books/book"); Iterator iter2 = list2.iterator(); while (iter2.hasNext()) { Element bookEle = (Element) iter2.next(); Iterator iterator = bookEle.elementIterator("title"); while (iterator.hasNext()) { Element titleElement = (Element) iterator.next(); if (titleElement.getText().equals("Dom4j Tutorials")) { bookEle.remove(titleElement); } } } try { /** 将document中的内容写入文件中 */ XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename))); writer.write(doc); writer.close(); /** 执行成功,需返回1 */ returnValue = 1; } catch (Exception ex) { ex.printStackTrace(); } return returnValue; }
public static Set<String> getStudiesForSubmission(Element submission) { Set<String> studyIDs = new HashSet<String>(); Element links = XMLUtils.getChildByName(submission, "SUBMISSION_LINKS"); if (links != null) { for (Element link : XMLUtils.getChildrenByName(links, "SUBMISSION_LINK")) { Element xref = XMLUtils.getChildByName(link, "XREF_LINK"); if (xref != null) { Element db = XMLUtils.getChildByName(xref, "DB"); Element id = XMLUtils.getChildByName(xref, "ID"); if (db != null && db.getText().equals("ENA-STUDY") && id != null) { studyIDs.addAll(getIdentifiers(id.getText())); } } } } return studyIDs; }
public void fromXML(Element xmlElement) { Element errorElement = xmlElement.element("error"); if (errorElement != null) { this.error = errorElement.getText(); } }
/** 分析XML数据 */ protected void parseXmlData() { Element el = this.xmlDoc.getRootElement(); List attrList = el.selectNodes("./fields/field"); for (int i = 0; i < attrList.size(); i++) { Element e = (Element) attrList.get(i); this.attr.put(e.attributeValue("id"), e.getText()); } }