【问题标题】:How to get the value of a specific XML tag using StaX [duplicate]如何使用 StaX 获取特定 XML 标记的值 [重复]
【发布时间】:2012-08-21 20:07:31
【问题描述】:

可能重复:
How to use StaX

大家好,我有一个 XML 文件,我希望 Java 能够输出特定标记的值。例如,这是我的 XML:

<?xml version="1.0"?>
    <dennis>
        <hair>brown</hair>
        <pants>blue</pants>
        <gender>male</gender>
    </dennis>

假设我想让 Java 吐出“性别”的值,有没有我可以使用的代码

XMLStreamReader.goToTag("gender");
System.out.println(XMLStreamReader.getLocalName());

【问题讨论】:

    标签: java xml tags stax


    【解决方案1】:

    您可以执行以下操作:

    StreamSource xml = new StreamSource("input.xml");
    XMLStreamReader xsr = xif.createXMLStreamReader(xml);
    xsr.nextTag();
    while(!xsr.getLocalName().equals("gender")) {
        xsr.nextTag();
    }
    

    XPath API

    您也可以使用javax.xml.xpath API:

    package forum12062255;
    
    import java.io.StringReader;
    import javax.xml.xpath.*;
    import org.xml.sax.InputSource;
    
    public class XPathDemo {
    
        private static final String XML = "<dennis><hair>brown</hair><pants>blue</pants><gender>male</gender></dennis>";
    
        public static void main(String[] args) throws Exception {
            XPathFactory xpf = XPathFactory.newInstance();
            XPath xPath = xpf.newXPath();
    
            InputSource inputSource = new InputSource(new StringReader(XML));
            String result = (String) xPath.evaluate("//gender", inputSource, XPathConstants.STRING);
            System.out.println(result);
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      吉他。

      当我开始学习使用 Java 进行 XML 解析时,我关注的是 this tutorial

      使用 STaX,您将需要这样的东西(不会发布完整的代码列表):

       if (event.asStartElement().getName().getLocalPart().equals("gender"))
      

      如果你坚持要获取一个特定的标签值,你应该查看DOM解析器,它从XML文档构建一棵树,这样你就可以访问元素“性别”(DOM的例子在link below中列出) . 不错

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-20
        • 2015-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-29
        • 2018-07-27
        相关资源
        最近更新 更多