Java 在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

我需要在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文件中搜索它

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']