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

<ref><syn><word>session</word><exp>n.会议,会期,开庭期,学期,一段时间</exp></syn><syn><word>lifespan... <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里的是短语:单词+翻译 ,我要分别怎么取出他们呢
展开
 我来答
198901245631
推荐于2017-09-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1734万
展开全部
可以通过元素中的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")“获取到子节点的元素,前提是需要知道子节点的名称。
andygulin
推荐于2017-10-02 · TA获得超过1678个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1116万
展开全部
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());
}
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
香菜喵
2019-10-19
知道答主
回答量:2
采纳率:0%
帮助的人:1593
展开全部
/**
* 获取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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
303767416
2012-10-16 · TA获得超过526个赞
知道小有建树答主
回答量:283
采纳率:66%
帮助的人:96.1万
展开全部
建议你百度DOM4J看看!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zlj_zlx
2012-10-16 · 超过13用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:41.2万
展开全部
http://blog.csdn.net/hitop0609/article/details/4593624
这个地址里面有个相关例子,看了你应该就明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式