本文整理汇总了Java中com.ximpleware.VTDNav.toElement方法的典型用法代码示例。如果您正苦于以下问题:Java VTDNav.toElement方法的具体用法?Java VTDNav.toElement怎么用?Java VTDNav.toElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.ximpleware.VTDNav
的用法示例。
在下文中一共展示了VTDNav.toElement方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: insertVersionIntoOriginalIfNecessary
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private void insertVersionIntoOriginalIfNecessary(final String pOwnVersionOrNull)
throws ModifyException, NavException, UnsupportedEncodingException, IOException, TranscodeException {
if (pOwnVersionOrNull != null) {
final VTDGen gen = new VTDGen();
gen.enableIgnoredWhiteSpace(true);
final XMLModifier modifier = new XMLModifier();
if (gen.parseFile(file.getAbsolutePath(), false)) {
final VTDNav vn = gen.getNav();
modifier.bind(vn);
if (vn.toElement(FC, ARTIFACT_ID)) {
final long l = vn.expandWhiteSpaces(vn.getElementFragment(), WS_LEADING);
final ByteArrayOutputStream out = new ByteArrayOutputStream();
vn.dumpFragment(l, out);
final String version = new String(out.toByteArray()).replaceAll(ARTIFACT_ID_PATTERN,
format(VERSION_FORMAT, pOwnVersionOrNull));
modifier.insertAfterElement(version);
}
}
try (final FileOutputStream out = new FileOutputStream(file)) {
modifier.output(out);
}
}
}
示例2: parseCorefs
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* Assumes the position of vn is at a "DOC" tag
*/
private List<AgigaCoref> parseCorefs(VTDNav vn) throws PilotException, NavException {
require (vn.matchElement(AgigaConstants.DOC));
List<AgigaCoref> agigaCorefs = new ArrayList<AgigaCoref>();
if (!vn.toElement(VTDNav.FIRST_CHILD, AgigaConstants.COREFERENCES)) {
// If there is no coref annotation return the empty list
log.finer("No corefs found");
return agigaCorefs;
}
// Loop through each token
AutoPilot corefAp = new AutoPilot(vn);
corefAp.selectElement(AgigaConstants.COREFERENCE);
while (corefAp.iterate()) {
AgigaCoref coref = parseCoref(vn.cloneNav());
agigaCorefs.add(coref);
}
return agigaCorefs;
}
示例3: parse
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private List<Item> parse(VTDNav navigator) throws Exception
{ List<Item> items = new ArrayList<Item>();
navigator.push();
if (navigator.toElement(VTDNav.FIRST_CHILD,ITEM))
{ do { String id = attribute(navigator,ID);
String name = attribute(navigator,NAME);
String grade = attribute(navigator,GRADE);
String stars = attribute(navigator,STARS);
String rated = attribute(navigator,RATED);
String order = attribute(navigator,ORDER);
String description = description(navigator);
Item item = new Item(id,name,grade,stars,rated,order,description);
originated(navigator,item);
checked (navigator,item);
items.add (item);
} while(navigator.toElement(VTDNav.NEXT_SIBLING,ITEM));
}
navigator.pop();
return items;
}
示例4: 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);
}
}
}
示例5: getSegPureText
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
private String getSegPureText(VTDUtils vu) throws VTDException {
VTDNav vn = vu.getVTDNav();
String pureText = null;
if (vn.toElement(VTDNav.FIRST_CHILD)) { // 取seg内容
String nodeName = vn.toRawString(vn.getCurrentIndex());
if (nodeName.equalsIgnoreCase("seg")) {
pureText = TmxInnerTagParser.getInstance().getTmxPureText(vu.getElementContent());
} else {
vn.push();
while (vn.toElement(VTDNav.NEXT_SIBLING)) {
nodeName = vn.toRawString(vn.getCurrentIndex());
if (nodeName.equalsIgnoreCase("seg")) {
pureText = TmxInnerTagParser.getInstance().getTmxPureText(vu.getElementContent());
break;
}
}
vn.pop();
}
}
return pureText;
}
示例6: moveToSibling
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* Moves the cursor to an element (sibling) with given name and position
* (the nth element with he same name starting to count at 0)
*
* @param vtdNav vtdXML navigator
* @param elementName name of element
* @param skipElements index of element starting with 0
* @return true if element found
* @throws NavException
*/
private boolean moveToSibling(VTDNav vtdNav, String elementName, Integer skipElements)
throws NavException {
boolean foundElement = false;
// counter for elements with elementName
Integer currentPosition = 0;
// iterate siblings until element found or no other siblings
do {
// break if element with position found and return true
if (vtdNav.matchTokenString(vtdNav.getCurrentIndex(), elementName)) {
if (skipElements == currentPosition) {
foundElement = true;
break;
}
currentPosition++;
}
} while (vtdNav.toElement(VTDNav.NEXT_SIBLING));
return foundElement;
}
示例7: parseHeadline
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* Parses out the HEADLINE element, which is a parse of the dateline if it exists.
*
* Assumes the position of vn is at a "DOC" tag
*/
private String parseHeadline(VTDNav vn) throws NavException {
require (vn.matchElement(AgigaConstants.DOC));
if (!vn.toElement(VTDNav.FIRST_CHILD, AgigaConstants.HEADLINE) || vn.getText() == -1) {
// If there is no headline annotation return the empty list
log.finer("No headline found");
return null;
}
return vn.toString(vn.getText()).trim();
}
示例8: parseDateline
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* Parses out the DATELINE element, which is a parse of the dateline if it exists.
*
* Assumes the position of vn is at a "DOC" tag
*/
private String parseDateline(VTDNav vn) throws NavException {
require (vn.matchElement(AgigaConstants.DOC));
if (!vn.toElement(VTDNav.FIRST_CHILD, AgigaConstants.DATELINE) || vn.getText() == -1) {
// If there is no dateline annotation return the empty list
log.finer("No dateline found");
return null;
}
return vn.toString(vn.getText()).trim();
}
示例9: getFirstChild
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
public XmlNode getFirstChild() {
try {
VTDNav cloneVtdNav = vtdNav.cloneNav();
if (!cloneVtdNav.toElement(VTDNav.FIRST_CHILD)) return null;
return new XmlNode(cloneVtdNav);
} catch (NavException e) {
throw new RuntimeException(e);
}
}
示例10: 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;
}
示例11: getSpecialRowId
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* 获取特殊的 rowId, file 由 占位符替换 robert 2013-05-15
* @param vn
* @return
* @throws XPathEvalException
*/
public static String getSpecialRowId(VTDNav vn) 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 "%%%FILE%%%" + SPLIT_MARK + original + SPLIT_MARK + tuid;
} catch (NavException e) {
LOGGER.error("", e);
e.printStackTrace();
} finally {
vn.pop();
}
return null;
}
示例12: getSplitFileInfoForPointSetting
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
/**
* 获取分割文件的相关信息,以用于设置分割点 --robert 2013-10-17
* @return
*/
public Map<String, Integer> getSplitFileInfoForPointSetting(String filePath){
Map<String, Integer> rowWordNumMap = new LinkedHashMap<String, Integer>();
try {
VTDNav vn = vnMap.get(filePath);
Assert.isNotNull(vn, Messages.getString("file.XLFHandler.msg4") + filePath);
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath(XPATH_ALL_TU + "/source");
int curTuWordNum = -1;
String srcText = null;
String rowID = null;
while(ap.evalXPath() != -1){
vn.push();
vn.toElement(VTDNav.PARENT);
rowID = RowIdUtil.getRowId(vn, filePath);
vn.pop();
// 由于担心 tu 下面有多个 source 节点,但是 rowId 是唯一的,故,总字数以及总文本段全依 map 中的数据为准.
if (rowWordNumMap.get(rowID) != null) {
continue;
}
srcText = getTUPureText(vn);
curTuWordNum = CountWord.wordCount(srcText, null);
rowWordNumMap.put(rowID, curTuWordNum);
}
} catch (Exception e) {
LOGGER.error("", e);
}
return rowWordNumMap;
}
示例13: decodeXml
import com.ximpleware.VTDNav; //导入方法依赖的package包/类
public static String decodeXml(String str) {
StringBuilder builder = new StringBuilder();
builder.append("<r>").append(str).append("</r>");
vg.setDoc(builder.toString().getBytes());
try {
vg.parse(true);
VTDNav vn = vg.getNav();
vn.toElement(VTDNav.ROOT);
return vn.toString(vn.getText());
} catch (Exception e) {
//should never come here
return str;
}
}
示例14: 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 "";
}
示例15: 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();
}