Java读取字符串的一部分

标签 java string javabeans

我有这段文字:

   <message id="dsds" to="test@test.com" type="video" from="test@test"><body>TESTTESTTEST</body><active xmlns="http://jabber.org"/></message>

我想得到 <body></body> 的一部分在这个字符串中。

在 java 中,我搜索并找到了 split,但它不能解决我的问题。如何获取 <body></body> 之间的文本在 Java 中?

最佳答案

最好使用像 SAXParserDocumentBuilder 这样的解析器。您可以准确地获取标签并处理数据。当您有许多标签要处理时,它们会特别方便。

下面是一个使用 Parser 读取 body 标签的例子:

        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        DefaultHandler handler = new DefaultHandler(){

            String body = "";
            boolean isBody = false;

            @Override
            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

                if (qName.equalsIgnoreCase("body")) {
                    isBody = true;
                }
            }

            @Override
            public void characters(char[] ch, int start, int length) throws SAXException {
                if (isBody) {
                    body = new String(ch, start, length);
                    System.out.println("body : " + body);
                }
            }

            @Override
            public void endElement(String uri, String localName, String qName) throws SAXException {
                if (qName.equalsIgnoreCase("body")) {
                    isBody = false;
                }
            }
        };

        saxParser.parse(new InputSource(new StringReader("<message id=\"dsds\" to=\"test@test.com\" type=\"video\" from=\"test@test\"><body id=\"dd\">TESTTESTTEST</body><active xmlns=\"http://jabber.org\"/></message>")), handler);

关于Java读取字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818706/

相关文章:

java - 验证java中的引用代码

java - Java 物质外观和感觉的 GUI 问题

c++ - 将 nullptr 分配给 std::string 是否安全?

mysql - 在 MySQL Workbench 中搜索多个字符串

java - 存储库中缺少 bean

java - 您可以从 MuleESB <choice> 调用 bean 中的方法吗?

java - 读取文件并将数据存储到多个数组时出错

python pandas dataframe 将字符串值的末尾替换为另一个字符

java - inputText 如何从 bean 设置属性?

java - 在传递变量时分配变量