私はクライアントからXML文字列を受け取ります
<?xml version="1.0" encoding="UTF-8"?>
<Esp:Interface Version="1.0" xmlns:Esp="http://***Confidential****/">
<Esp:Transaction ActionCode="APPROVE" CardNumber="474849********28" ExpiryDate="0824"
ResponseCode="00" TerminalId="03563001" Track2="474849********28=08241261234"
TransactionAmount="300" TransactionId="00051" Type="PURCHASE" LocalDate="0823"
LocalTime="152006" PosOperatorId="1234" AuthorizationNumber="123456" MessageType="REFERAL">
</Esp:Transaction>
</Esp:Interface>
次のように各文字列を抽出したい
ActionCode="APPROVE"
CardNumber="474849********28"
ExpiryDate="0824"
ResponseCode="00"
TerminalId="03563001"
Track2="474849********28=08241261234"
TransactionAmount="300"
TransactionId="00051"
Type="PURCHASE"
LocalDate="0823"
LocalTime="152006"
PosOperatorId="1234"
AuthorizationNumber="123456"
MessageType="REFERAL"
以前XPath
は XML 文字列を読み取っていましたが、エラーが発生しました
InputSource source = new InputSource(new StringReader(sXMLData));//sXMLData Contains XML String
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(source);
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
String msg = xpath.evaluate("/Esp:Interface/Esp:Transaction", document);
System.out.println("msg= " + msg);
エラー :
msg : /* Coming Blank */
これらの 2 つのリンクを参照しましたが、Java XPath を使用して XML の単純な文字列を解析し、Java で XML を照会する最も簡単な方法については、あまり助けになりませんでした。
これらの個々の文字列をXMLから取得するにはどうすればよいですか...組み込みXML
または古いsubstring
方法を使用して(非効率的)