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


Java VTDNav.getCurrentIndex方法代码示例

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


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

示例1: initTmxVersion

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void initTmxVersion(VTDNav vn) throws NavException {
	vn.toElement(VTDNav.ROOT);
	int rootIdx = vn.getCurrentIndex();
	if (vn.toString(rootIdx).equalsIgnoreCase("tmx")) {
		int t = vn.getAttrVal("version");
		if (t != -1) {
			tmxVersion = vn.toString(t);
		}
	}
	for (int i = 0; i < rootIdx; i++) {
		int ty = vn.getTokenType(i);
		if (ty == VTDNav.TOKEN_DTD_VAL) {
			doctypeContent = vn.toString(i);
		}
	}
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:17,代码来源:TmxLargeFileContainer.java

示例2: ananysisSubTag

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 处理 sub 标记
 * @param vn
 * @param textMap
 */
private void ananysisSubTag(VTDNav vn, Map<Integer, String> textMap, Map<Integer, SectionSegBean> targetMap) throws Exception{
	vn.push();
	String style = "";
	int attrIdx = -1;
	if ((attrIdx = vn.getAttrVal("rPr")) != -1) {
		style = vn.toString(attrIdx);
	}
	
	String extendNodes = "";
	if ((attrIdx = vn.getAttrVal("extendNodes")) != -1) {
		extendNodes = vn.toString(attrIdx);
	}
	
	AutoPilot curAP = new AutoPilot(vn);
	curAP.selectXPath("./node()|text()");
	while(curAP.evalXPath() != -1){
		int index = vn.getCurrentIndex();
		int tokenType = vn.getTokenType(index);
		if (tokenType == 0) {	//节点子节点
			String nodeName = vn.toString(index);
			if ("ph".equals(nodeName)) {
				textMap.put(index, resetCleanStr(vu.getElementContent()));
			}else if ("g".equals(nodeName)) {
				ananysisTag(vn, targetMap);
			}else if ("sub".equals(nodeName)) {
				ananysisSubTag(vn, textMap, targetMap);
			}
		}else if (tokenType == 5) {	//文本子节点
			StringBuffer textSB = new StringBuffer();
			
			textSB.append("<w:r>" + style + extendNodes);
			textSB.append("<w:t xml:space=\"preserve\">" + resetCleanStr(vn.toRawString(index)) + "</w:t></w:r>");
			
			textMap.put(index, textSB.toString());
		}
	}
	vn.pop();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:44,代码来源:XliffInputer.java

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

示例4: initSpreadAllStory

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * 加载 designmap.xml 文件,初始化 lstSpread 和 lstAllStory
 * @throws XPathParseException
 * @throws XPathEvalException
 * @throws NavException
 *             ;
 */
private void initSpreadAllStory(IProgressMonitor monitor) throws XPathParseException, XPathEvalException,
		NavException {
	monitor.beginTask("", 1);
	monitor.subTask(MessageFormat.format(Messages.getString("idml.IDML2XLIFF.task5"), "designmap.xml"));
	VTDGen vg = new VTDGen();
	if (vg.parseZIPFile(strSrcPath, "designmap.xml", true)) {
		VTDNav vn = vg.getNav();
		AutoPilot ap = new AutoPilot(vn);
		ap.declareXPathNameSpace(IDML_PREFIX, IDML_NAMESPACE);
		ap.selectXPath("/Document/node()");
		while (ap.evalXPath() != -1) {
			int curIndex = vn.getCurrentIndex();
			int tokenType = vn.getTokenType(curIndex);
			String name = vn.toString(curIndex);
			// 节点
			if (tokenType == 0) {
				if (name.equals("idPkg:Spread")) {
					String strSpread = vn.toString(vn.getAttrVal("src"));
					lstSpread.add(strSpread);
				} else if (name.equals("idPkg:Story")) {
					String strStory = vn.toString(vn.getAttrVal("src"));
					lstAllStory.add(strStory);
				} else if (name.equals("idPkg:MasterSpread")) {
					String strMasterSpread = vn.toString(vn.getAttrVal("src"));
					lstMasterSpread.add(strMasterSpread);
				}
			}
		}
	}
	monitor.worked(1);
	monitor.done();
}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:40,代码来源:IDML2XLIFF.java

示例5: getTUIndexCache

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * Get TU node VTD index cache, can use this data compute TU node position in body node
 * @param isReload
 *            is or not reload the cache, for example reparse the TMX file need reload.
 * @return The TU node VTD index in a ArrayList;
 */
public List<Integer> getTUIndexCache(boolean isReload) {
	if (tuIndexCache == null) {
		tuIndexCache = new ArrayList<Integer>();
	}
	if (isReload) {
		tuIndexCache.clear();
	} else {
		return tuIndexCache;
	}
	VTDNav vn = vu.getVTDNav();
	vn.push();
	try {
		vu.pilot("/tmx/body");
		AutoPilot ap = new AutoPilot(vn);
		ap.selectXPath("./tu");
		while (ap.evalXPath() != -1) {
			int idex = vn.getCurrentIndex();
			tuIndexCache.add(idex);
			this.tuTotalNumber++;
		}
	} catch (VTDException e) {
		LOGGER.error("", e);
	} finally {
		vn.pop();
	}
	return tuIndexCache;
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:34,代码来源:TmxFileContainer.java

示例6: anaysisTgtOrSrcNode

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
	 * 分析 source 或 target 节点,获取其内容
	 * @throws Exception
	 */
	private void anaysisTgtOrSrcNode(StringBuffer textSB, VTDNav vn, boolean isText) throws Exception {
		vn.push();
		AutoPilot otherAP = new AutoPilot(vn);
		String childXpath = "./text()|node()";
		otherAP.selectXPath(childXpath);
		int tokenId = -1;
		int index = -1;
		Map<Integer, SectionSegBean> targetMap = new TreeMap<Integer, SectionSegBean>();
		while (otherAP.evalXPath() != -1) {
			index = vn.getCurrentIndex();
			tokenId = vn.getTokenType(index);
			if (tokenId == 0) {	//节点子节点
				ananysisTag(vn, targetMap);
			}else if (tokenId == 5) { // 文本子节点
//				if ("+1 845-536-1416".equals(vn.toString(index))) {
//					System.out.println("问题开始了。。。。");
//				}
				targetMap.put(index, new SectionSegBean(null, vn.toRawString(index), null, null, null));
			}
		}
		vn.pop();
		
		SectionSegBean bean;
		for (Entry<Integer, SectionSegBean> entry : targetMap.entrySet()) {
			bean = entry.getValue();
			if (isText) {
				if (bean.getText() != null) {
					textSB.append(bean.getText());
				}
			}else {
				// 这个要组装 w:r 等节点
				String ctype = bean.getCtype() == null ? "" : bean.getCtype();
				String style = bean.getStyle() == null ? "" : bean.getStyle();
				String extendNodes = bean.getExtendNodesStr() == null ? "" : bean.getExtendNodesStr();
				if (bean.getPhTagStr() != null) {
					textSB.append(bean.getPhTagStr());
				}else {
					if ("".equals(ctype)) {
						textSB.append("<w:r>" + style + extendNodes);
						textSB.append("<w:t xml:space=\"preserve\">" + bean.getText() + "</w:t></w:r>");
					}else {
						// <w:hyperlink r:id="rId8" w:history="1">
						int endIdx = ctype.indexOf(" ") == -1 ? ctype.indexOf(">") : ctype.indexOf(" ");
						String nodeName = ctype.substring(ctype.indexOf("<") + 1, endIdx);
						textSB.append(ctype);
						textSB.append("<w:r>" + style + extendNodes);
						textSB.append("<w:t xml:space=\"preserve\">" + bean.getText() + "</w:t></w:r>");
						textSB.append("</" + nodeName + ">");
					}
				}
			}
		}
	}
 
开发者ID:heartsome,项目名称:translationstudio8,代码行数:58,代码来源:XliffInputer.java

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

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

示例9: loadDisplayTuIdentifierByFilter

import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
 * (non-Javadoc)
 * @see net.heartsome.cat.te.core.tmxdata.AbstractTmxDataAccess#loadDisplayTuIdentifierByFilter(net.heartsome.cat.te.core.bean.TmxEditorFilterBean,
 *      java.lang.String, java.lang.String, boolean)
 */
public void loadDisplayTuIdentifierByFilter(IProgressMonitor monitor, TmxEditorFilterBean filterBean, String srcLang, String tgtLang, String srcSearchText, String tgtSearchText) {
	Assert.isLegal(srcLang != null && srcLang.length() > 0 && tgtLang != null && tgtLang.length() > 0);
	super.currSrcLang = srcLang;
	super.currTgtLang = tgtLang;
	super.tuIdentifiers.clear();
	if (filterBean == null) { // 查询所有
		List<Integer> piMap = container.getTUIndexCache(false);
		if (langList.size() == 1) { // 不需要语言过滤,加载全部TU
			for (int i = 1; i <= piMap.size(); i++) {
				super.tuIdentifiers.add(i + "");
			}
			return;
		}

		VTDUtils vu = container.getVTDUtils();
		VTDNav vn = vu.getVTDNav();
		vn.push();
		try {
			vu.pilot("/tmx/body");
			AutoPilot ap = new AutoPilot(vn);
			String tuXpath = "./descendant::tu[tuv[@xml:lang='" + srcLang + "'] and tuv[@xml:lang='" + tgtLang
					+ "']]";
			ap.selectXPath("count(" + tuXpath + ")");
			int tuNumber = (int) ap.evalXPathToNumber();
			if (tuNumber == piMap.size()) {
				for (int i = 1; i <= tuNumber; i++) {
					super.tuIdentifiers.add(i + "");
				}
			} else {
				ap.resetXPath();
				ap.selectXPath(tuXpath);
				while (ap.evalXPath() != -1) {
					int idex = vn.getCurrentIndex();
					super.tuIdentifiers.add((piMap.indexOf(idex) + 1) + "");
				}
			}
		} catch (VTDException e) {
			// TODO: handle exception
			e.printStackTrace();
		} finally {
			vn.pop();
		}
	}

	// TODO 需要实现过滤条件
}
 
开发者ID:heartsome,项目名称:tmxeditor8,代码行数:52,代码来源:TmxFileDataAccess.java

示例10: 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,项目名称:tmxeditor8,代码行数:52,代码来源:Ttx2Xliff.java

示例11: 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,项目名称:tmxeditor8,代码行数:44,代码来源:Ttx2Xliff.java


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