我需要在XML文件中搜索字符串。我为此开发了以下功能
public boolean IsTextInFile(String sFileName, String sVerifyText )
{
File file = new File(sFileName);
BufferedReader reader = new BufferedReader(new FileReader(file));
String sCurrLine = "", sAllLines = "";
boolean bStatus = false;
while ((sCurrLine = reader.readLine()) != null) {
sAllLines += sCurrLine;
}
if (sAllLines.contains(sVerifyText)) {
bStatus = true;
}
reader.close();
return bStatus;
}
现在字符串就像我要在xml文件中搜索
<docAttr type=\"abc\" name=\"pqr\">44</docAttr>
它总是返回假。
我尝试过给定的子串
当我尝试<docAttr type=\"abc\"
时它返回true而name=\"pqr\">44</docAttr>
为此也返回true。但是当我把它当作一个完整的
<docAttr type=\"abc\" name=\"pqr\">44</docAttr>
它返回假。
此外,我可以直接使用Internet Explorer中的find搜索我的字符串。
答案 0 :(得分:2)
请注意,XML属性的顺序无关紧要,并且属性之间的空白也可能不同。这使得字符串搜索非常脆弱。尝试使用XPath。由于您使用的是Java,因此可以免费使用。
例如,要选择所有&lt; docAttr&gt;具有属性类型和名称的指定值并且包含文本“44”的元素:
//docAttr[@type='abc' and @name='pqr' and text()='44']
答案 1 :(得分:1)
String xml = xml.toString(); //or whatever methods it uses to convert.
//check if string has.
boolean doesContain = xml.contains("my word/s");