当前位置: 首页>>代码示例>>Java>>正文


Java VTDNav.pop方法代码示例

本文整理汇总了Java中com.ximpleware.VTDNav.pop方法的典型用法代码示例。如果您正苦于以下问题:Java VTDNav.pop方法的具体用法?Java VTDNav.pop怎么用?Java VTDNav.pop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.ximpleware.VTDNav的用法示例。


在下文中一共展示了VTDNav.pop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: changeTranslateProp

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 改变translate属性的值
 * @param translateValue
 *            可选值:“yes”、“no”
 * @param xm
 *            XMLModifier对象;
 * @throws NavException
 * @throws UnsupportedEncodingException
 * @throws ModifyException
 * @throws XPathParseException
 * @throws XPathEvalException
 */
private boolean changeTranslateProp(VTDNav vn, String translateValue, XMLModifier xm) throws NavException,
		ModifyException, UnsupportedEncodingException, XPathParseException, XPathEvalException {
	if (translateValue == null) {
		return false;
	}

	vn.push();
	boolean isChanged = false; // 当前的TransUnit的translate属性是否执行了修改
	int attrIdx = vn.getAttrVal("translate");
	if (attrIdx != -1) { // 存在translate属性
		String translate = vn.toString(attrIdx);
		if (!translate.equals(translateValue)) { // translate属性值不为指定的translateValue
			xm.updateToken(attrIdx, translateValue);
			isChanged = true;
		}
	} else {
		xm.insertAttribute(" translate=\"" + translateValue + "\" ");
		if (translateValue.equals("no")) { // 默认值为yes
			isChanged = true;
		}
	}
	vn.pop();
	return isChanged;
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:37,代码来源:XLFHandler.java

示例2: getSrcPureText

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 得到源的纯文本内容
 * @param rowId
 *            行的唯一标识
 * @return 源的纯文本内容;
 */
public String getSrcPureText(String rowId) {
	String tuXPath = RowIdUtil.parseRowIdToXPath(rowId);
	VTDNav vn = getVTDNavByRowId(rowId);
	try {
		VTDUtils vu = new VTDUtils(vn);
		vn.push();
		vu.pilot(tuXPath + "/source");
		String result = getTUPureText(vu.getVTDNav());
		vn.pop();
		return result;
	} catch (NavException e) {
		LOGGER.error("", e);
		e.printStackTrace();
	}
	return null;
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:23,代码来源:XLFHandler.java

示例3: getAttribute

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取属性值
 * @param xpath
 * @param defaultValue
 * @return
 * @throws Exception
 *             ;
 */
private String getAttribute(String tmxLocation, String xpath, String defaultValue) throws Exception {
	VTDNav vn = vnMap.get(tmxLocation);
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	Assert.isNotNull(vn,
			MessageFormat.format(Messages.getString("tmxeditor.tmxFileValidator.canntFindFile"), tmxLocation));
	ap.selectXPath(xpath);

	int index;
	if ((index = ap.evalXPath()) != -1) {
		return vn.toString(index + 1);
	}
	vn.pop();
	return defaultValue;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:24,代码来源:TmxFileValidator.java

示例4: getComments

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取批注
 * @param vn
 * @param bean
 */
private void getComments(VTDNav vn, VTDUtils vu, TUBean bean) throws Exception {
	vn.push();
	List<CommentBean> commentList = new ArrayList<CommentBean>();
	otherAP.selectXPath("./note");
	String content = "";
	String user = "";
	String time = "";
	String text = "";
	int index = -1;
	while (otherAP.evalXPath() != -1) {
		// <note from='Mac'>2013-05-13:test</note>
		if ((index = vn.getAttrVal("from")) != -1) {
			user = vn.toString(index);
		}
		content = vu.getElementContent();
		if (content == null || content.length() <= 0) {
			continue;
		}
		if ((index = content.indexOf(":")) != -1) {
			time = content.substring(0, index);
			text = content.substring(index + 1, content.length());
		} else {
			text = content;
		}
		commentList.add(new CommentBean(user, time, text));
	}
	bean.setComment(commentList);
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:35,代码来源:ExportConfig.java

示例5: getRowId

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 得到编辑器中一行文本段数据的唯一标识
 * @param vn
 *            VTDNav对象
 * @param handler
 *            XLFHandler对象
 * @param fileName
 *            xliff文件名
 * @return 编辑器中唯一标识该行文本段的Id;
 * @throws XPathEvalException
 */
public static String getRowId(VTDNav vn, String fileName) throws XPathEvalException {
	try {
		if (!"trans-unit".equals(vn.toString(vn.getCurrentIndex()))) {
			LOGGER.debug(Messages.getString("file.RowIdUtil.logger1"));
			throw new XPathEvalException(Messages.getString("file.RowIdUtil.msg1"));
		}
		vn.push();
		int idIdx = vn.getAttrVal("id");
		String tuid = idIdx != -1 ? vn.toString(idIdx) : "";

		while (!"file".equals(vn.toString(vn.getCurrentIndex()))) { // 找到file节点
			if (!vn.toElement(VTDNav.PARENT)) { // 到跟节点都没有找到
				LOGGER.error(Messages.getString("file.RowIdUtil.logger2"));
				return null;
			}
		}
		int originalIdx = vn.getAttrVal("original");
		String original = originalIdx != -1 ? vn.toString(originalIdx) : "";
		return fileName + SPLIT_MARK + original + SPLIT_MARK + tuid;
	} catch (NavException e) {
		LOGGER.error("", e);
		e.printStackTrace();
	} finally {
		vn.pop();
	}
	return null;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:39,代码来源:RowIdUtil.java

示例6: originated

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void originated(VTDNav navigator,Item item) throws Exception 
{ navigator.push();
  
  if (navigator.toElement(VTDNav.FIRST_CHILD,ORIGINATED))
     { String by   = attribute(navigator,BY);
       String date = attribute(navigator,DATE);
       
       item.originated = new Item.Originated(by,date);
     }
  
  navigator.pop();
}
 
开发者ID:twystd,项目名称:tbxml-android,代码行数:13,代码来源:VTD.java

示例7: lockTransUnit

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void lockTransUnit(VTDNav vn, XMLModifier xm) throws NavException, ModifyException,
		UnsupportedEncodingException, XPathParseException, XPathEvalException {
	vn.push();
	int attrIdx = vn.getAttrVal("translate");
	if (attrIdx != -1) { // 存在translate属性
		String translate = vn.toString(attrIdx);
		if (!translate.equals("no")) { // translate属性值不为指定的translateValue
			xm.updateToken(attrIdx, "no");
		}
	} else {
		xm.insertAttribute(" translate=\"no\" ");
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:15,代码来源:PreTranslation.java

示例8: getSdlComment

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取trados 2009的备注信息
 */
private void getSdlComment(VTDNav vn, VTDUtils vu, String commentId, TuMrkBean bean) throws Exception{
	vn.push();
	List<CommentBean> commentList = new LinkedList<CommentBean>();
	boolean isCurrentSeg = true;	//当前文本段的批注
	if (bean == null) {
		isCurrentSeg = false;
	}
	int attrIdx = -1;
	if (commentId != null && !"".equals(commentId)) {
		String commandXpath = "/xliff/doc-info/cmt-defs/cmt-def[@id='" + commentId + "']/Comments/Comment";	
		AutoPilot ap = new AutoPilot(vn);
		ap.selectXPath(commandXpath);
		while(ap.evalXPath() != -1){
			String severity = null;
			String user = null;
			String date = null;
			String commentText = null;
			if ((attrIdx = vn.getAttrVal("severity")) != -1) {
				severity = vn.toString(attrIdx);
			}
			if ((attrIdx = vn.getAttrVal("user")) != -1) {
				user = vn.toString(attrIdx);
			}
			if ((attrIdx = vn.getAttrVal("date")) != -1) {
				date = vn.toString(attrIdx);
			}
			commentText = vu.getElementContent();
			commentList.add(new CommentBean(user, date, severity, commentText, isCurrentSeg));
		}
	}
	//针对单一文本段的批注
	if (isCurrentSeg) {
		bean.setCommentList(commentList);
	}else {
		//这时是全局批注
		fileCommentsList.addAll(commentList);
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:43,代码来源:Sdl2Xliff.java

示例9: ananysisTag

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void ananysisTag(Map<Integer, String[]> targetMap) throws VTDException {
	VTDNav vn = vu.getVTDNav();
	vn.push();
	int idex = vn.getCurrentIndex();
	String tagName = vn.toString(idex);
	if ("g".equals(tagName)) {
		String ctype = vu.getCurrentElementAttribut("ctype", null);
		String rpr = vu.getCurrentElementAttribut("rPr", "");

		AutoPilot ap = new AutoPilot(vn);
		ap.selectXPath("./node() | text()");
		while (ap.evalXPath() != -1) {
			idex = vn.getCurrentIndex();
			int tokenType = vn.getTokenType(idex);
			if (tokenType == 0) {
				String name = vu.getCurrentElementName();
				if ("ph".equals(name)) {
					targetMap.put(idex, new String[] { vu.getElementContent(), rpr, ctype });
				} else if ("g".equals(name)) {
					ananysisTag(targetMap);
				}
			} else if (tokenType == 5) {
				targetMap.put(idex, new String[] { vn.toRawString(idex), rpr, ctype });
			}
		}
	} else if ("ph".equals(tagName)) {
		targetMap.put(idex, new String[] { vu.getElementContent(), null, null });
	} else { // 其他节点,一律当做字符串处理
		targetMap.put(idex, new String[] { vu.getElementFragment(), null, null });
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:33,代码来源:XliffReader.java

示例10: readTuElementAttribute

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void readTuElementAttribute(TmxTU tu) throws VTDException {
	VTDNav vn = vu.getVTDNav();

	vn.push();
	AutoPilot apAttributes = new AutoPilot(vu.getVTDNav());
	apAttributes.selectXPath("@*");
	int inx = -1;
	while ((inx = apAttributes.evalXPath()) != -1) {
		String name = vn.toString(inx);
		inx = vn.getAttrVal(name);
		String value = inx != -1 ? vn.toString(inx) : "";
		// tuid, o-encoding, datatype, usagecount, lastusagedate, creationtool, creationtoolversion, creationdate,
		// creationid, changedate, segtype, changeid, o-tmf, srclang.
		if (name.equals("tuid")) {
			tu.setTuId(value);
		} else if (name.equals("creationtool")) {
			tu.setCreationTool(value);
		} else if (name.equals("creationtoolversion")) {
			tu.setCreationToolVersion(value);
		} else if (name.equals("creationdate")) {
			tu.setCreationDate(value);
		} else if (name.equals("creationid")) {
			tu.setCreationUser(value);
		} else if (name.equals("changedate")) {
			tu.setChangeDate(value);
		} else if (name.equals("changeid")) {
			tu.setChangeUser(value);
		} else {
			tu.appendAttribute(name, value);
		}
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:34,代码来源:TmxReader.java

示例11: getTagLocation

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * <div style='color:red'>备注:该方法是从 XLFHandler 类中拷贝的。</div>
 * 获取每个标记 header 与 tail 在文本中的 index,此方法主要针对文本段分割,分割点在g、mrk标记里面。robert	2012-11-15
 * @param vn
 */
private List<Map<String, String>> getTagLocation(VTDNav vn, String srcContent){
	List<Map<String, String>> tagLoctionList = new LinkedList<Map<String,String>>();
	
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	String xpath = "./descendant::node()";
	
	try {
		VTDUtils vu = new VTDUtils(vn);
		ap.selectXPath(xpath);
		int lastIdx = 0;
		while(ap.evalXPath() != -1){
			Map<String, String> tagLocationMap = new HashMap<String, String>();
			
			String tagName = vn.toString(vn.getCurrentIndex());
			if (!("g".equals(tagName) || "mrk".equals(tagName))) {
				continue;
			}
			String tagHeader = vu.getElementHead();
			String tagTail = vu.getElementFragment().replace(tagHeader, "").replace(vu.getElementContent(), "");
			int headerIdx = srcContent.indexOf(tagHeader, lastIdx);
			int tailIdx = headerIdx + tagHeader.length() + vu.getElementContent().length();
			lastIdx = headerIdx;
			
			tagLocationMap.put("tagHeader", tagHeader);
			tagLocationMap.put("tagTail", tagTail);
			tagLocationMap.put("headerIdx", "" + headerIdx);
			tagLocationMap.put("tailIdx", "" + tailIdx);
			
			tagLoctionList.add(tagLocationMap);
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
	
	vn.pop();
	return tagLoctionList;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:44,代码来源:ReverseConversionValidateWithLibrary3.java

示例12: getAttribute

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取属性值
 * @param xpath
 * @param defaultValue
 * @return
 * @throws Exception ;
 */
private String getAttribute(VTDNav vn, String attriName, String defaultValue) throws Exception {
	vn.push();
	int index;
	if ((index = vn.getAttrVal(attriName)) != -1) {
		return vn.toString(index);
	}
	vn.pop();
	return defaultValue;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:17,代码来源:TMXValidator.java

示例13: validSrcLanguage

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 循环每一个tu节点,进一步判断源语言
 * @param tmxLocation
 */
private void validSrcLanguage(String tmxLocation, String srcLanguage) throws Exception {
	VTDNav vn = vnMap.get(tmxLocation);
	Assert.isNotNull(vn, MessageFormat.format(Messages.getString("plugin.TMXValidator.msg11"), tmxLocation));
	AutoPilot ap = new AutoPilot(vn);
	AutoPilot tuvAp = new AutoPilot(vn);
	ap.selectXPath("/tmx/body/tu");
	
	int index;
	while (ap.evalXPath() != -1) {
		boolean found = false;
		vn.push();
		tuvAp.selectXPath("./tuv");
		while(tuvAp.evalXPath() != -1){
			String lang = "";
			if ((index = vn.getAttrVal("xml:lang")) != -1) {
				lang = vn.toString(index);
			}
			if ("".equals(lang)) {
				if (version.equals("1.1") || version.equals("1.2")) { 
					if ((index = vn.getAttrVal("lang")) != -1) {	//$NON-NLS-1$
						lang = vn.toString(index);
					}
				} else {
					throw new Exception(Messages.getString("plugin.TMXValidator.msg12")); 
				}
			}
			if (lang.equals("")) { 
				throw new Exception(Messages.getString("plugin.TMXValidator.msg12")); 
			}
			
			if (lang.equals(srcLanguage)) {
				found = true;
			}
		}
		if (!found) {
			throw new Exception(MessageFormat.format(Messages.getString("plugin.TMXValidator.msg13"), srcLanguage));
		}
		vn.pop();
	}
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:45,代码来源:TMXValidator.java

示例14: analysisChildOfSrcTuv

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 分析tuv节点下面的所有节点,获取出要翻译的文本段
 */
private void analysisChildOfSrcTuv(Map<Integer, TextBean> textMap, VTDNav vn, VTDUtils vu) throws Exception {
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	String xpath = "./node()|text()";
	ap.selectXPath(xpath);
	int index = -1;
	while (ap.evalXPath() != -1) {
		int curIdx = vn.getCurrentIndex();
		int tokenType = vn.getTokenType(curIdx);
		// 等于0表示为节点
		if (tokenType == 0) {
			// 如果这个节点还有子节点。那么遍历其子节点
			if (vu.getChildElementsCount() > 0) {
				analysisChildOfSrcTuv(textMap, vn, vu);
			} else {
				String nodeName = vu.getCurrentElementName();
				if ("df".equals(nodeName)) {
					// df节点下的数据,直接加载。
					if ((index = vn.getText()) != -1) {
						sklXM.updateToken(index, "%%%" + tagId + "%%%");
						textMap.put(index, new TextBean(tagId, vn.toRawString(index), true));
						tagId++;
					}
				} else if ("ut".equals(nodeName)) {
					// ut节点下保存的是cf标记信息,要将它进行转义
					if ((index = vn.getText()) != -1) {
						// 这种情况,为cf标记
						if (vn.getAttrVal("DisplayText") != -1
								&& "cf".equals(sklVN.toString(vn.getAttrVal("DisplayText")))) {
							textMap.put(index, new TextBean(-1, vn.toString(index), false));
						} else {
							// 处理除cf之外的其他标记,如symbol,这时一般当文本处理
							sklXM.remove();
							sklXM.insertBeforeElement("%%%" + tagId + "%%%");
							textMap.put(index, new TextBean(tagId, vn.toString(index), false));
							tagId++;
						}
					}
				}
			}
		} else if (tokenType == 5) { // 等于5表示为文本子节点
			index = vn.getCurrentIndex();
			sklXM.updateToken(index, "%%%" + tagId + "%%%");
			textMap.put(index, new TextBean(tagId, vn.toRawString(index), true));
			tagId++;
		}
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:53,代码来源:Ttx2Xliff.java

示例15: getFilteredTUPureText

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取trans-unit节点过滤后的值,过滤条件为不包括上下文匹配,不包括完全匹配,不包括已锁文本,过滤条件在首选项中设置
 * @return	Map<String, String >	两个键值对,srcPureText --> 源文本的纯文本,tarPureText --> 目标文本的纯文本
 * 如果返回的是null,则标志source节点无内容,这对与行号就不自增
 */
public Map<String, String> getFilteredTUPureText(String xlfPath, String nodeXpath, Map<String, Boolean> filterMap){
	Map<String, String> filteredTuPureTextMap = new HashMap<String, String>();
	VTDNav vn = vnMap.get(xlfPath);
	AutoPilot ap = new AutoPilot(vn);
	Assert.isNotNull(vn, Messages.getString("qa.QAXmlHandler.msg1") + xlfPath);
	AutoPilot childAp = new AutoPilot(vn);
	try {
		VTDUtils vUtils = new VTDUtils(vn);
		ap.selectXPath(nodeXpath);
		while (ap.evalXPath() != -1) {
			
			vn.push();
			//取出源文本的纯文本之前,先查看其内容是否为空,若为空,则返回,没有source节点,也返回null
			childAp.selectXPath("./source");
			if (childAp.evalXPath() != -1) {	//因为标准里面只有一个source,因此此处用if不用while
				String srcContent = vUtils.getElementContent();
				//如果源文本为空或无值,则返回null
				if (srcContent == null || "".equals(srcContent)) {
					return null;
				}else {
					filteredTuPureTextMap.put("srcPureText", getTUPureText(vn));
				}
			}else {
				return null;
			}
			childAp.resetXPath();
			vn.pop();
			
			//首先过滤,如果有不应包括的文本段,则返回空
			if (!filterTheTU(vn, filterMap)) {
				return filteredTuPureTextMap;
			}
			
			//下面获取目标文本的纯文本,在之前先检查目标文本是否为空或为空值,若是,则返回null,若没有target节点,也返回空
			childAp.selectXPath("./target");
			if (childAp.evalXPath() != -1) {	//因为标准里面只有一个target,因此此处用if不用while
				String tarContent = vUtils.getElementContent();
				//如果源文本为空或无值,则返回null
				if (tarContent == null || "".equals(tarContent)) {
					return filteredTuPureTextMap;
				}else {
					filteredTuPureTextMap.put("tarPureText", getTUPureText(vn));
				}
			}else {
				return filteredTuPureTextMap;
			}
			childAp.resetXPath();
		}
		
	} catch (Exception e) {
		logger.error(Messages.getString("qa.QAXmlHandler.logger12"), e);
	}
	
	return filteredTuPureTextMap;
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:61,代码来源:QAXmlHandler.java


注:本文中的com.ximpleware.VTDNav.pop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。