java怎么取出xml中指定节点中的内容

<ref>
<syn><word>session</word><exp>n.会议, 会期, 开庭期, 学期, 一段时间 </exp></syn>
<syn><word>life span</word><exp>寿命 </exp></syn>
<rel><word>the year dot</word><exp>老早以前</exp></rel>
<rel><word>year after year</word><exp>年复一年 </exp></rel>
<rel><word>year by year</word><exp>每年, 年年 </exp></rel>
<rel><word>year of grace</word><exp>耶稣纪元 ... 年;公元 ... 年 </exp></rel>
</ref>注意:syn里的是近义词:单词+翻译;而rel里的是短语:单词+翻译 ,我要分别怎么取出他们呢

可以通过元素中的getText方法获取到节点的内容。
举例:
SAXReader sax = new SAXReader();
Document document = sax.read(reader);//reader为定义的一个字符串,可以转换为xml
Element root = document.getRootElement();//获取到根节点元素String str = root .getText()//获取到节点的内容
用到的是dom4j-1.6.1.jar,需要引入的包是:
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
备注:如果是多个子节点可以通过”Element xx=root .element("code")“获取到子节点的元素,前提是需要知道子节点的名称。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-02
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Test {
public static void main(String[] args) throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("F:/a.xml"));
List<Node> nodes1 = doc.selectNodes("//ref/syn");
List<Node> nodes2 = doc.selectNodes("//ref/rel");
for (Node node : nodes1) {
System.out.println(node.selectSingleNode("word").getText() + " "
+ node.selectSingleNode("exp").getText());
}
for (Node node : nodes2) {
System.out.println(node.selectSingleNode("word").getText() + " "
+ node.selectSingleNode("exp").getText());
}
}
}本回答被提问者和网友采纳
第2个回答  2019-10-19
/**
* 获取xml字符串中元素标签值
* <p>xml中元素标签唯一</p>
* @param responseXml 响应报文(xml字符串格式)
* @param element 元素名(区分大小写)
* @return 元素对应的值
*/
public String getXmlSingleElementValue(String responseXml, String element) {

String str = "";
String regex = "<" + element + ">" + "(.*)" + "</" + element + ">";
Matcher matcher = Pattern.compile(regex).matcher(responseXml);
while (matcher.find()) {
str = matcher.group(1);
}
return str;
}
第3个回答  2012-10-16
建议你百度DOM4J看看!
第4个回答  2012-10-16
http://blog.csdn.net/hitop0609/article/details/4593624
这个地址里面有个相关例子,看了你应该就明白了
相似回答