本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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();
}
示例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;
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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;
}
示例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;
}
示例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();
}
}
示例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();
}
示例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;
}