[英]Read line by line in java
我正在從POST接收xml文件。 我正在嘗試讀取xml文件中的內容,但是我得到的答案對我來說並不是邏輯。 我只希望閱讀第三行,但這似乎是我的程序不想閱讀的唯一一行。
.JAVA:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int line=0;
byte[] buffer=new byte[1000];
while(line<5) {
request.getInputStream().readLine(buffer, 0, buffer.length);
line++;
}
String name = new String(buffer, "UTF-8");
System.out.println(name);
}
.XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Trias xmlns:siri="http://www.siri.org.uk/siri" xmlns="http://www.vdv.de/trias" xmlns:ns3="http://www.ifopt.org.uk/acsb" xmlns:ns4="http://www.ifopt.org.uk/ifopt" xmlns:ns5="http://datex2.eu/schema/1_0/1_0" version="1.2">
<siri:CheckStatusRequest>
<siri:RequestTimestamp>2018-03-12T16:36:30.002+01:00</siri:RequestTimestamp>
您不希望第三行包含感興趣的內容。 XML元素之間不需要換行符。 例如,請求主體可以按以下方式交付:
<Trias …><siri:CheckStatusRequest><siri:RequestTimestamp>2018-03-12T16:36:30.002+01:00</siri:RequestTimestamp></siri:CheckStatusRequest></Trias>
(為清楚起見,省略了Trias屬性。)
Java有很多讀取XML的工具。 就您而言, XPath可能是最簡單的:
XPath xpath = XPathFactory.newInstance().newXPath();
String timeStr = xpath.evaluate("//*[local-name()='RequestTimestamp']",
new InputSource(request.getInputStream()));
OffsetDateTime timestamp = OffsetDateTime.parse(timeStr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.