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


Java VTDNav.push方法代码示例

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


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

示例1: getAllAttributes

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取所有属性
 * @param vn
 * @return
 * @throws Exception
 *             ;
 */
private Map<String, String> getAllAttributes(VTDNav vn) throws Exception {
	vn.push();
	AutoPilot apAttributes = new AutoPilot(vn);
	Map<String, String> attributes = new HashMap<String, String>();
	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) : "";
		attributes.put(name, value);

	}
	vn.pop();
	return attributes;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:24,代码来源:TmxFileValidator.java

示例2: getLangs

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取 tmxfile 中的所有语言
 * @return
 */
public List<String> getLangs() {
	VTDNav vn = vu.getVTDNav();
	vn.push();
	List<String> langs = new LinkedList<String>();
	langs.add(header.getSrclang());
	AutoPilot ap = new AutoPilot(vn);
	try {
		ap.selectXPath("/tmx/body/tu/tuv");
		String lang;
		int index = -1;
		while (ap.evalXPath() != -1) {
			index = vn.getAttrVal("xml:lang");
			if (index == -1)
				continue;
			lang = vn.toRawString(index);
			if (!langs.contains(lang)) {
				langs.add(lang);
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
	vn.pop();
	return langs;
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:30,代码来源:TmxReader.java

示例3: analysisUT

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 分析 ut 节点,这个节点里面保存的一般都是 cf 标记或者单元内容
 * @throws Exception
 */
private void analysisUT(VTDNav vn, SegmentBean segBean) throws Exception{
	vn.push();
	int index = -1;
	String typeAtt = "";
	if ((index = vn.getAttrVal("Type")) != -1) {
		typeAtt = vn.toRawString(index);
	}
	String displayTextAtt = "";
	if ((index = vn.getAttrVal("DisplayText")) != -1) {
		displayTextAtt = vn.toRawString(index);
	}
	//判断开始与结束点
	if ("start".equals(typeAtt) && !"cf".equals(displayTextAtt)) {
		start = true;	//一个单元的开始
		end = false;
	}else if ("end".equals(typeAtt) && !"cf".equals(displayTextAtt)) {
		start = false;
		end = true;	// 一个单元的结束
	}
	segBean.setTagStr(vu.getElementFragment());
	segBean.setHasTag(true);
	needAdd = true;
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:29,代码来源:ArrangeTTX.java

示例4: getAllAttributes

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取所有属性
 * @param vn
 * @return
 * @throws Exception ;
 */
private Map<String, String> getAllAttributes(VTDNav vn) throws Exception {
	vn.push();
	AutoPilot apAttributes = new AutoPilot(vn);
	Map<String, String> attributes = new HashMap<String, String>();
	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) : "";
		attributes.put(name, value);
		
	}
	vn.pop();
	return attributes;
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:23,代码来源:TMXValidator.java

示例5: setDataToOtherTU

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 向被合并的空的 tu 中填充值
 * @param vn
 * @param xm
 * @param isSrc
 * @param secondId
 * @param otherContent
 * @throws Exception
 */
private void setDataToOtherTU(VTDNav vn, XMLModifier xm, boolean isSrc, String secondId, String otherContent) throws Exception {
	if (otherContent == null || otherContent.length() <= 0) {
		return;
	}
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	String xpath = "/xliff/file/body/descendant::trans-unit[@id='" + secondId + "']" 
		+ (isSrc ? "/source" : "/target");
	ap.selectXPath(xpath); 
	if (ap.evalXPath() != -1) {
		xm.insertAfterHead(otherContent.getBytes("UTF-8"));
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:24,代码来源:ReverseConversionValidateWithLibrary3.java

示例6: getNotes

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void getNotes(VTDNav vn, TuBean tuBean) throws Exception {
	List<CommentBean> commentList = new LinkedList<CommentBean>();
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	String xpath = "./note";
	ap.selectXPath(xpath);
	String commentText = "";
	int attrIdx = -1;
	while(ap.evalXPath() != -1){
		attrIdx = vn.getAttrVal("from");
		String user = "";
		String date = "";
		String type = "text";
		
		if (attrIdx != -1) {
			user = vn.toRawString(attrIdx);
		}
		if (vn.getText() != -1) {
			String r8NoteText = vn.toString(vn.getText());
			if (r8NoteText.indexOf(":") != -1) {
				commentText += r8NoteText.substring(r8NoteText.indexOf(":") + 1, r8NoteText.length());
				date = r8NoteText.substring(0, r8NoteText.indexOf(":"));
			}else {
				commentText += r8NoteText;
			}
		}
		
		commentList.add(new CommentBean(user, date, type, commentText, null));
	}
	if (commentText.length() > 0) {
		commentText = commentText.substring(0, commentText.length() - 1);
	}
	tuBean.setCommentList(commentList);
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:36,代码来源:Xliff2Wf.java

示例7: 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,项目名称:tmxeditor8,代码行数:33,代码来源:XliffReader.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,项目名称:tmxeditor8,代码行数:43,代码来源:Sdl2Xliff.java

示例9: 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

示例10: description

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private String description(VTDNav navigator) throws Exception 
{ navigator.push();

  try
     { if (navigator.toElement(VTDNav.FIRST_CHILD,DESCRIPTION))
          { return text(navigator);
          }
     }
  finally
     { navigator.pop();
     }

  return "";
}
 
开发者ID:twystd,项目名称:tbxml-android,代码行数:15,代码来源:VTD.java

示例11: checked

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void checked(VTDNav navigator,Item item) throws Exception 
{ AutoPilot pilot = new AutoPilot(navigator);
           
  navigator.push();
  pilot.selectXPath(CHECKED);

  if (pilot.evalXPath() != -1)
     { String by   = attribute(navigator,BY);
       String date = attribute(navigator,DATE);
       
       item.checked = new Item.Checked(by,date);
     }
  
  navigator.pop();
}
 
开发者ID:twystd,项目名称:tbxml-android,代码行数:16,代码来源:VTDXPath.java

示例12: analysisChildOfTgtTuv

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 分析译文tuv节点下面的所有节点,获取出要翻译的文本段,但不占位,只获取文本
 */
private void analysisChildOfTgtTuv(Map<Integer, TextBean> tgtTextMap, VTDNav vn, VTDUtils vu) throws Exception {
	vn.push();
	AutoPilot ap = new AutoPilot(vn);
	String xpath = "./*|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) {
				analysisChildOfTgtTuv(tgtTextMap, vn, vu);
			} else {
				String nodeName = vu.getCurrentElementName();
				if ("df".equals(nodeName)) {
					// df节点下的数据,直接加载。
					if ((index = vn.getText()) != -1) {
						tgtTextMap.put(index, new TextBean(-1, vn.toRawString(index), true));
					}
				} else if ("ut".equals(nodeName)) {
					// ut节点下保存的是cf标记信息,要将它进行转义
					if ((index = vn.getText()) != -1) {
						if (vn.getAttrVal("Type") != -1) {
							tgtTextMap.put(index, new TextBean(-1, vn.toString(index), false));
						} else {
							// 若 ut 节点没有 Type 属性,一般为除cf之外的其他标记,如symbol,这时一般当文本处理
							tgtTextMap.put(index, new TextBean(-1, vn.toString(index), false));
						}
					}
				}
			}
		} else if (tokenType == 5) { // 等于5表示为文本子节点
			index = vn.getCurrentIndex();
			tgtTextMap.put(index, new TextBean(-1, vn.toRawString(index), true));
		}
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:44,代码来源:Ttx2Xliff.java

示例13: getHunspellAvailableLang

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取 hunspell 所支持的语言	2013-01-15
 * @param xmlPath
 * @return
 */
public Map<String, String> getHunspellAvailableLang(String xmlPath){
	Map<String, String> langMap = new HashMap<String, String>();
	VTDGen vg = new VTDGen();
	if (!vg.parseFile(xmlPath, true)) {
		logger.error("Hunspell 语言管理文件破损,无法解析。");
		return null;
	}
	VTDNav vn = vg.getNav();
	AutoPilot ap = new AutoPilot(vn);
	AutoPilot childAP = new AutoPilot(vn);
	String xpath = "/config/language";
	try {
		ap.selectXPath(xpath);
		while (ap.evalXPath() != -1) {
			String code = null;
			String dictionary = null;

			vn.push();
			childAP.selectXPath("./isoCode");
			if(childAP.evalXPath() != -1){
				if (vn.getText() != -1) {
					code = vn.toRawString(vn.getText());
				}
			}
			vn.pop();
			
			vn.push();
			childAP.selectXPath("./dict");
			if (childAP.evalXPath() != -1) {
				if (vn.getText() != -1) {
					dictionary = vn.toRawString(vn.getText());
				}
			}
			vn.pop();
			
			if (code != null && dictionary != null && !"".equals(code) && !"".equals(dictionary)) {
				langMap.put(code, dictionary);
			}
		}
	} catch (Exception e) {
		logger.error("Hunspell 语言管理文件内容获取失败!", e);
	}
	return langMap;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:50,代码来源:QAXmlHandler.java

示例14: getFilteredTUContent

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 获取trans-unit节点过滤后的source和target节点的文本内容(不去掉标记),过滤条件为不包括上下文匹配,不包括完全匹配,不包括已锁文本,过滤条件在首选项中设置
 * @return	Map<String, String >	两个键值对,srcContent --> 源文本的文本,tarContent --> 目标文本的文本
 * 如果返回的是null,则标志source节点无内容,这对与行号就不自增
 */
public Map<String, String> getFilteredTUContent(String xlfPath, String nodeXpath, Map<String, Boolean> filterMap){
	Map<String, String> tuTextMap = 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 {
				return null;
			}
			childAp.resetXPath();
			vn.pop();
			
			//首先过滤,如果有不应包括的文本段,则返回空
			if (!filterTheTU(vn, filterMap)) {
				return tuTextMap;
			}
			
			//下面获取目标文本的纯文本,在之前先检查目标文本是否为空或为空值,若是,则返回null,若没有target节点,也返回空
			childAp.selectXPath("./target");
			if (childAp.evalXPath() != -1) {	//因为标准里面只有一个target,因此此处用if不用while
				String tarContent = vUtils.getElementContent();
				//如果源文本为空或无值,则返回null
				if (tarContent == null || "".equals(tarContent)) {
					return tuTextMap;
				}else {
					//两个检查项中的忽略标记,若有一项为true,那么就必须获取纯文本
					tuTextMap.clear();
				}
			}else {
				return tuTextMap;
			}
			childAp.resetXPath();
		}
	}catch (Exception e) {
		logger.error(Messages.getString("qa.QAXmlHandler.logger13"), e);
	}
	return tuTextMap;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:58,代码来源:QAXmlHandler.java

示例15: getAllSrcTextForFuzzy

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 针对繁殖翻译。获取所有的源文。robert 2012-09-20
 * @return
 */
public Map<String, FuzzyTransDataBean> getAllSrcTextForFuzzy(ArrayList<String> rowIdList, boolean ignoreTag) {
	Map<String, FuzzyTransDataBean> textMap = new LinkedHashMap<String, FuzzyTransDataBean>();
	try {
		VTDNav vn = null;
		AutoPilot ap = new AutoPilot();
		VTDUtils vUtils = new VTDUtils();
		AutoPilot childAp = new AutoPilot();

		for (String rowId : rowIdList) {
			// 标识译文是否为空,如果为空,则为true,不为空则为 false
			boolean isTargetNull = false;
			// 是否锁定
			boolean isLock = false;

			vn = getVTDNavByRowId(rowId).duplicateNav();
			ap.bind(vn);
			vUtils.bind(vn);
			childAp.bind(vn);

			vn.push();
			ap.selectXPath(RowIdUtil.parseRowIdToXPath(rowId));
			if (ap.evalXPath() != -1) {
				// 如果,当前文本段是处于锁定状态的,就不用获取
				int index = vn.getAttrVal("translate");
				if (index != -1 && "no".equalsIgnoreCase(vn.toString(index))) {
					isLock = true;
				}

				String srcText = null;
				vn.push();
				childAp.selectXPath("./source");
				if (childAp.evalXPath() != -1) {
					// 如果忽略标记的话,就没有必要获取source节点的完整内容了
					if (!ignoreTag) {
						srcText = vUtils.getElementContent();
					} else {
						srcText = getTUPureText(vn);
					}
				}
				vn.pop();

				vn.push();
				childAp.selectXPath("./target[text()!='' or *]");
				if (childAp.evalXPath() != -1) {
					isTargetNull = false;
				} else {
					isTargetNull = true;
				}
				vn.pop();

				// 存放值
				textMap.put(rowId, new FuzzyTransDataBean(srcText.trim(), isTargetNull, isLock));
			}

			vn.pop();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}

	return textMap;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:67,代码来源:XLFHandler.java


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