如何在Java中解析字符串XML
我有一个字符串XML。我需要从java中的XML中获取itemissucess值。但项值返回null。这是我的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
<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
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