Java 在XML文件中搜索字符串
我需要在XML文件中搜索字符串。我为此开发了以下函数Java 在XML文件中搜索字符串,java,xml,string,full-text-search,Java,Xml,String,Full Text Search,我需要在XML文件中搜索字符串。我为此开发了以下函数 public boolean IsTextInFile(String sFileName, String sVerifyText ) { File file = new File(sFileName); BufferedReader reader = new BufferedReader(new FileReader(file)); String sCurrLine = "", sA
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文件中搜索它
44
它总是返回错误
我已尝试使用给定的子字符串
当我尝试使用44
时,它也会返回true。但是当我把它当作一个完整的
44
这是假的
此外,我还可以使用Internet Explorer中的find直接搜索字符串。请注意,XML属性的顺序是不相关的,而且属性之间的空格可能会有所不同。这使得字符串搜索非常脆弱。尝试改用XPath。因为您使用的是Java,所以这是免费的
String xml = xml.toString(); //or whatever methods it uses to convert.
//check if string has.
boolean doesContain = xml.contains("my word/s");
例如,要选择属性类型和名称具有指定值且包含文本“44”的所有元素:
请注意,XML属性的顺序是不相关的,而且属性之间的空格可能会有所不同。这使得字符串搜索非常脆弱。尝试改用XPath。因为您使用的是Java,所以这是免费的 例如,要选择属性类型和名称具有指定值且包含文本“44”的所有元素:
我建议您编写一个小单元测试来帮助调试在
type=\'abc\'
和name=\'pqr\'之间可能有一个选项卡(\t
)而不是空格
。您的搜索字符串是什么?我的实际搜索字符串是44@Arun可能会尝试使用DOM或SAX之类的xml解析器吗?我建议您编写一个小单元测试来帮助调试可能会有一个选项卡(\t
)而不是type=\“abc\”
和name=\“pqr\”之间的空格
。您的搜索字符串是什么?我的实际搜索字符串是44@Arun可以尝试使用DOM或SAX之类的xml解析器吗?
//docAttr[@type='abc' and @name='pqr' and text()='44']