0

我需要在 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 来搜索我的字符串。

4

2 回答 2

2

请注意,XML 属性的顺序无关紧要,而且属性之间的空格也可能不同。这使得字符串搜索非常脆弱。尝试改用 XPath。既然您使用的是 Java,那将是免费的。

例如,要选择所有具有指定属性类型和名称值且包含文本“44”的 <docAttr> 元素:

//docAttr[@type='abc' and @name='pqr' and text()='44']
于 2013-06-24T11:23:09.150 回答
1
String xml = xml.toString(); //or whatever methods it uses to convert.

//check if string has.
boolean doesContain = xml.contains("my word/s");
于 2013-06-24T10:56:15.230 回答