获取两个标记之间的内容,然后返回完整字符串

时间:2012-10-02 06:37:11

标签: java

如何在每两个标签之间获得一些文字(<tagname></tagname>),并在更改了这两个标签的文本后我需要完整的字符串以及更改 .think,这是java字符串内容。

更改前

<小时/> “Lorem ipsum dolor <tagname>text to be changed 1</tagname> amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam,quis nostrud <tagname>text to be changed 2</tagname> laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in repreptderit in velptate velit esse cillum dolore eu fugiat nulla pariatur。Excepteur sint <tagname>text to be changed 3</tagname> cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。“


更改后

应该是这样的

<小时/> “Lorem ipsum dolor <tagname>text changed 1</tagname> amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam,quis nostrud <tagname>text changed 2</tagname> laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in repreptderit in velptate velit esse cillum dolore eu fugiat nulla pariatur。Excepteur sint <tagname>text changed 3</tagname> cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。“


实际上我需要一个像这样的方法,

String getChangedString(String toBeChanged){
   //process
   return changedString;
}

我怎么能得到这个。

感谢。

4 个答案:

答案 0 :(得分:2)

String getChangedString(String toBeChanged){
   String changedString = toBeChanged;

   while (changedString.indexOf("<tagname>") >= 0)
   {
     changedString = changedString.substring(0, changedString.indexOf("<tagname>")) +
       "whatever replacement string" +
       changedString.substring(changedString.indexOf("</tagname>") + "</tagname>".length());
   }


   return changedString;
}

答案 1 :(得分:1)

假设标签位于XML文件中,您应该使用现有的XML解析器之一,例如DOM或SAX,而不是重新发明轮子。

答案 2 :(得分:1)

我一直在寻找相同的,也许这个问题可以帮到你,看看: Java regex to extract text between tags

它使用正则表达式来获取标记之间的文本内容。就我而言,我有兴趣从我的xml上找到的第一个标签中获取文本,而不是从每个标签中获取文本

答案 3 :(得分:1)

在org.apache.commons.lang.StringUtils中有一个完美的基于字符串解析的实用程序,下面的代码对我来说非常合适。

String title = StringUtils.substringBetween(testHtml, "<title>", "</title>");
System.out.println("title:" + title); // good