传入叶子节点,找父节点,递归调用。
public static String getXMLAbsolutePath(Element e) {
if (e.getParent() != null) {
return getXMLAbsolutePath(e.getParent()) + "." + e.getName();
} else {
return e.getName();
}
}
public static String getXMLAbsolutePath(Element e) {
if (e.getParent() != null) {
return getXMLAbsolutePath(e.getParent()) + "." + e.getName();
} else {
return e.getName();
}
}
解决方案 »
- 阅读下列程序段,写出程序结束后变量sum的值。
- 请问为什么我这个类无法运行。。。老是说main的void类型不可用
- 第三届ITAT考试题 小弟从小语文就笨得很 题意有些不明白 希望大家帮帮忙啊!!!!???
- 算法问题 高手帮帮忙?
- response.sendredirect()能否使父页面转向?
- 学习 I/O 章节,蛮郁闷的
- 在线提问,关于继承关系中的上传下传问题,我写了个例子,大家帮我分析一下,怎么才算是上传,怎么才算是下传,
- 这代码怎么编译不过去
- java内部类的问题
- String数组里的数字怎么转换为int?在线等,马上结贴!
- 在下写了一个java的别踩白块 遇到个问题。。求解答。。
- 安装jre8以后出现一个大问题
import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class main { public main() {
// TODO Auto-generated constructor stub
} private static boolean parseChild(Node node, String path) {
if (null == node) return false;
if (null != path && !path.equals(""))
path = path + "." + node.getNodeName();
else
path = node.getNodeName();
if (!node.getNodeName().startsWith("#"))
System.out.println(path);
NodeList nodelist = node.getChildNodes();
for (int i = 0; i < nodelist.getLength(); i++) {
Node child = (Node) nodelist.item(i);
parseChild(child, path);
}
return true;
}
/**
* @param args
*/
public static void main(String[] args) {
Document document;
try {
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("test.txt");
Node mapTag = document.getChildNodes().item(0);
parseChild(mapTag, null);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
}
test.txt 是你的xml内容
foreach (XElement node in doc.Element("Persons").Nodes())
{
if ("Person" == node.Name.LocalName)
{
//...
}
...
}