我已经从XML文件收集了som数据,现在正在尝试编辑数据,以便它适合我的程序。我收集的数据陈述了给定参数的最小值和最大值,但我只对最小值或最大值感兴趣。删除其他所有字符串条目
XML数据源的样子:
<tolerated>
<UMIN2> [ 181.2 186.8 ] </UMIN2>
<T_UMIN2> [ 0.4 0.6 ] </T_UMIN2>
<UMIN1> [ 197 203 ] </UMIN1>
<T_UMIN1> [ 2.4 2.6 ] </T_UMIN1>
<UMAX1> [ 249.2 256.8 ] </UMAX1>
<T_UMAX1> [ 0.9 1.1 ] </T_UMAX1>
<UMAX2> [ 260 268 ] </UMAX2>
<T_UMAX2> [ 0.4 0.6 ] </T_UMAX2>
</tolerated>
我已经得到了我的程序加载这个数据到一个名为TOL字符串,通过这个代码
public static String tolerance() throws SAXException, IOException, ParserConfigurationException, XPathExpressionException{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(O1.replace("\\","\\\\"));
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
String tTemp = new String();
XPathExpression expr1 = xpath.compile("ptfGen/body/gridCode/"+header2.substring(31,header2.length()-23)+"/tolerated");
Node nodeGettingChanged1 = (Node) expr1.evaluate(doc, XPathConstants.NODE);
String toldata = new String();
NodeList childNodes1 = nodeGettingChanged1.getChildNodes();
for (int i = 0; i != childNodes1.getLength(); i++)
{
Node child = (Node) childNodes1.item(i);
if (!(child instanceof Element))
continue;
if (child.getNodeName().equals("tolerated"));{
toldata = child.getFirstChild().getNodeValue();
tTemp += toldata.substring(3,toldata.length()-3).replace(" ", "\n") + "\n";
}
tol = tTemp;
}
return tTemp;
}
这给了我所有的值与换行符分隔。
我的问题是现在我可以/如何删除所有其他条目,以便我只有最小值或最大值?'
现在我得到的输出是一样的东西
TOL = {“181.2 \ n186.8 \ N0.4 \ N0.6 \ n197 \ n .......... “};
和我AMM寻找的是
TOL = { “181.2 \ N0.4 \ n197 \ n ..........”};
我不想更改XML文件,只是字符串。 – abbisDK
查看http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)或http://docs.oracle.com /javase/7/docs/api/java/util/StringTokenizer.html – neutrino