【问题标题】:Xml parsing using xpath -- Xpaths or DOM [duplicate]使用 xpath 进行 Xml 解析——Xpaths 或 DOM [重复]
【发布时间】:2016-10-06 02:29:38
【问题描述】:

我有以下xml。我需要从上面的xml中获取bcc,cc,main,subject的值。

我该如何解析这个?

<?xml version="1.0" encoding="UTF-8"?>
<abc>
    <pqr ref1="8340403366" ref2="0000000228754072" ref3="3200051014">
    </pqr>
    <errors>
        <subject>Error is there</subject> 
        <mailto bcc="priyanka.chaddha@gmail.com" cc="richard.gayle@gmail.com"main="richard.gayle@gmail.com"/>
        <text mnofield="000020"/>
    </errors>
</abc>

【问题讨论】:

  • 您是否尝试过使用 DOM 或 XPath 来阅读它?如果没有,去你的电脑上试试吧……它会工作的,我很确定它会……
  • xml格式错误,mailto元素中main=/&gt;之前应该有一个空格。您的 xml 文件真的是这样吗,还是只是问题中的拼写错误?

标签: java xml parsing dom xpath


【解决方案1】:

如果您正在尝试解析 xml 文件,这样的事情可以帮助您:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

Document doc = dBuilder.parse(file);
XPath xPath = XPathFactory.newInstance().newXPath();

String expression = "//pqr/@ref1";  // This line defines the element or attribute that you want to retrieve
Node node = (Node) xPath.compile(expression).evaluate(doc, XPathConstants.NODE);
String nodeValue = node.getTextContent();

如果您的 xml 文件具有重复的元素和属性,您可能希望将值存储在 NodeList 中。为此,您可以使用:

NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(doc, XPathConstants.NODESET);

您应该查看以下链接:

http://www.roseindia.net/tutorials/xPath/index.shtml

https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多