是否可以不按文件名而是按其内容(字符串值)来解析xml

  • 本文关键字:字符串 xml 文件名 是否 java xml
  • 更新时间 :
  • 英文 :


祝你好运,是否可以不使用XML内容的绝对路径来解析它?

我有两个变量:

replyInXml = "<company><staff id="1001"><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>100000</salary></staff></company>"
xmlFilePath = "c:folderfile.xml"

在我的Java代码中,我使用了绝对路径,得到了我想要的xml结果。我的问题是,是否可以使用上面转换的xml字符串(replyInXml(变量来解析它。

File fXmlFile = new File(xmlFilePath);

完整代码:

public class XmlReader {
public String showProcessFlowID(String replyInXML) {
String processFlowResult = "";
try {
File fXmlFile = new File(replyInXML);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("SUIFT:TEST_ATTR_LIST");
// System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String processStep = "PROCESS STEP=" + eElement.getElementsByTagName("SUIFT:TEST_STAGE").item(0).getTextContent();
String flowID = "FLOW ID=" + eElement.getElementsByTagName("SUIFT:FLOW_ID").item(0).getTextContent();
processFlowResult = processStep + "n" + flowID;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return processFlowResult;
}
public static void main(String args[]) {
//I want to use this but negative result since the File() parameter need xml file
String xmlContent = "<company><staff><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>100000</salary></staff></company>";

//This is working
String xmlPath = "C:\folder1\sampleReply.xml";
XmlReader processFlow = new XmlReader();
String reply = processFlow.showProcessFlowID(xmlPath);
System.out.println(reply);
}

}

请告知。

TIA-

是。您可以使用xml字符串进行解析。

String xmlStr="";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new ByteArrayInputStream(xmlStr.getBytes("UTF-8")));

最新更新