如何在Java中解析字符串XML

如何在Java中解析字符串XML,java,Java,我有一个字符串XML。我需要从java中的XML中获取itemissucess值。但项值返回null。这是我的XML代码 XML <QRYRESULT><ISSUCCESS>N</ISSUCCESS><REASON>E002</REASON><WARNING>1. Transaction date Should be current date.11-SEP-18 E </WARNING></QRYRESU

我有一个字符串XML。我需要从java中的XML中获取itemissucess值。但项值返回null。这是我的XML代码

  • XML

    <QRYRESULT><ISSUCCESS>N</ISSUCCESS><REASON>E002</REASON><WARNING>1. Transaction date Should be current date.11-SEP-18  E </WARNING></QRYRESULT>
    
    NE0021。交易日期应为当前日期。2018年9月11日E
    
  • 我已经编写了下面的代码来获取ISSUCCESS项目值

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(**myXML**));
    Document doc = db.parse(is);
    NodeList nodeList = doc.getElementsByTagName("QRYRESULT");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Element value = (Element) nodeList.item(i);
        String ISSUCCESS = value.getAttribute("ISSUCCESS");
        System.out.println("ISSUCCESS = " + ISSUCCESS);
    }
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    InputSource is=新的InputSource();
    is.setCharacterStream(新的StringReader(**myXML**));
    文档doc=db.parse(is);
    NodeList NodeList=doc.getElementsByTagName(“QRYRESULT”);
    for(int i=0;i

  • ISSUCCESS是元素而不是属性

    更改为:

    NodeList nodeList = doc.getElementsByTagName("QRYRESULT");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Element value = (Element) nodeList.item(i);
    
        String ISSUCCESS = value.getElementsByTagName("ISSUCCESS").item(0).getTextContent();
        System.out.println("ISSUCCESS = " + ISSUCCESS);
    }
    
    NodeList NodeList=doc.getElementsByTagName(“QRYRESULT”);
    for(int i=0;i
    ISSUCCESS是一个元素而不是一个属性

    更改为:

    NodeList nodeList = doc.getElementsByTagName("QRYRESULT");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Element value = (Element) nodeList.item(i);
    
        String ISSUCCESS = value.getElementsByTagName("ISSUCCESS").item(0).getTextContent();
        System.out.println("ISSUCCESS = " + ISSUCCESS);
    }
    
    NodeList NodeList=doc.getElementsByTagName(“QRYRESULT”);
    for(int i=0;i
    您可以使用以下代码获取ISSUCCESS项目值:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(**myXML**));
    Document doc = db.parse(is);
    NodeList nodeList = doc.getElementsByTagName("QRYRESULT");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = childList.item(i);
        if ("ISSUCCESS".equals(childNode.getNodeName())) {
            System.out.println(childList.item(i).getTextContent()
                                        .trim());
        }
    }
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    InputSource is=新的InputSource();
    is.setCharacterStream(新的StringReader(**myXML**));
    文档doc=db.parse(is);
    NodeList NodeList=doc.getElementsByTagName(“QRYRESULT”);
    for(int i=0;i
    您可以使用以下代码获取ISSUCCESS项目值:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(**myXML**));
    Document doc = db.parse(is);
    NodeList nodeList = doc.getElementsByTagName("QRYRESULT");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = childList.item(i);
        if ("ISSUCCESS".equals(childNode.getNodeName())) {
            System.out.println(childList.item(i).getTextContent()
                                        .trim());
        }
    }
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    InputSource is=新的InputSource();
    is.setCharacterStream(新的StringReader(**myXML**));
    文档doc=db.parse(is);
    NodeList NodeList=doc.getElementsByTagName(“QRYRESULT”);
    for(int i=0;i
    试试这个

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse(contactsXMLstream);
    doc.getDocumentElement().normalize();
    NodeList nList = doc.getElementsByTagName("QRYRESULT");
    entries=new MarketEntry[nList.getLength()];            
    for (int temp = 0; temp < nList.getLength(); temp++)
    {
        Node nNode = nList.item(temp);
        if (nNode.getNodeType() == Node.ELEMENT_NODE)
        {
            Element eElement = (Element) nNode;
            String vr= eElement.getElementsByTagName("ISSUCCESS").item(0).getTextContent();
        }
    }
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    Document doc=db.parse(contactsXMLstream);
    doc.getDocumentElement().normalize();
    NodeList nList=doc.getElementsByTagName(“QRYRESULT”);
    entries=新的MarketEntry[nList.getLength()];
    对于(int-temp=0;temp
    尝试此项

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse(contactsXMLstream);
    doc.getDocumentElement().normalize();
    NodeList nList = doc.getElementsByTagName("QRYRESULT");
    entries=new MarketEntry[nList.getLength()];            
    for (int temp = 0; temp < nList.getLength(); temp++)
    {
        Node nNode = nList.item(temp);
        if (nNode.getNodeType() == Node.ELEMENT_NODE)
        {
            Element eElement = (Element) nNode;
            String vr= eElement.getElementsByTagName("ISSUCCESS").item(0).getTextContent();
        }
    }
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    Document doc=db.parse(contactsXMLstream);
    doc.getDocumentElement().normalize();
    NodeList nList=doc.getElementsByTagName(“QRYRESULT”);
    entries=新的MarketEntry[nList.getLength()];
    对于(int-temp=0;temp
    有多种方法可以做到这一点:

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(new StringReader(myXML)));
        // 1, get root element, get first child (ISSUCCESS), get first child (text node), get value
        System.out.println(doc.getDocumentElement().getFirstChild().getFirstChild().getNodeValue());
        // 2, using nodelist
        NodeList rootChildNodes = doc.getDocumentElement().getChildNodes();
        String ISSUCCESSValue = null; 
        for (int i = 0; i < rootChildNodes.getLength(); i++) {
            Node childNode = rootChildNodes.item(i);
            if("ISSUCCESS".equals(childNode.getNodeName())){
                // get text node and get the value
                ISSUCCESSValue = childNode.getFirstChild().getNodeValue();
                break;
            }
        }   
        System.out.println(ISSUCCESSValue);
        // 3, using XPATH
        XPathFactory xPathfactory = XPathFactory.newInstance();
        XPath xpath = xPathfactory.newXPath();
        XPathExpression expr = xpath.compile("/QRYRESULT/ISSUCCESS/text()") // or xpath.compile("//ISSUCCESS/text()");
        String value = expr.evaluate(doc.getDocumentElement());
        System.out.println(value);
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    documentdoc=db.parse(新的InputSource(新的StringReader(myXML));
    //1、获取根元素、获取第一个子元素(ISSUCCESS)、获取第一个子元素(文本节点)、获取值
    System.out.println(doc.getDocumentElement().getFirstChild().getFirstChild().getNodeValue());
    //2、使用节点列表
    NodeList rootChildNodes=doc.getDocumentElement().getChildNodes();
    字符串ISSUCCESSValue=null;
    对于(int i=0;i
    有多种方法可以做到这一点:

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(new StringReader(myXML)));
        // 1, get root element, get first child (ISSUCCESS), get first child (text node), get value
        System.out.println(doc.getDocumentElement().getFirstChild().getFirstChild().getNodeValue());
        // 2, using nodelist
        NodeList rootChildNodes = doc.getDocumentElement().getChildNodes();
        String ISSUCCESSValue = null; 
        for (int i = 0; i < rootChildNodes.getLength(); i++) {
            Node childNode = rootChildNodes.item(i);
            if("ISSUCCESS".equals(childNode.getNodeName())){
                // get text node and get the value
                ISSUCCESSValue = childNode.getFirstChild().getNodeValue();
                break;
            }
        }   
        System.out.println(ISSUCCESSValue);
        // 3, using XPATH
        XPathFactory xPathfactory = XPathFactory.newInstance();
        XPath xpath = xPathfactory.newXPath();
        XPathExpression expr = xpath.compile("/QRYRESULT/ISSUCCESS/text()") // or xpath.compile("//ISSUCCESS/text()");
        String value = expr.evaluate(doc.getDocumentElement());
        System.out.println(value);
    
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db=dbf.newDocumentBuilder();
    documentdoc=db.parse(新的InputSource(新的StringReader(myXML));
    //1、获取根元素、获取第一个子元素(ISSUCCESS)、获取第一个子元素(文本节点)、获取值
    System.out.println(doc.getDocumentElement().getFirstChild().getFirstChild().getNodeValue());
    //2、使用节点列表
    NodeList rootChildNodes=doc.getDocumentElement().getChildNodes();
    字符串ISSUCCESSValue=null;
    对于(int i=0;i