刚接触htmlparser,想用htmlparser解析字符串
测试文本一<input name="text1" type="text" value="text1">
测试文本二
- Stirng sText="<p><span name="first" style=""><b>测试文本一</b></span><input name="\"text1\"/" type="\"text\"" value="\"text1\""></p><p><span style="">测试文本二</span>其他数据;\";
- Parser parser = new Parser();
- parser.setInputHTML(sText);
- parser.setEncoding(parser.getEncoding());
- NodeFilter filter = new NodeClassFilter(Span.class);
- NodeList list = parser.extractAllNodesThatMatch(filter);
- for (int i = 0; i < list.size(); i++) {
- if (list.elementAt(i) instanceof Span) {
- Span spanTag = (Span ) list.elementAt(i);
- textnode.setAttributeEx(textnode.getAttributeEx("name"));
- if(spanTag .getAttribute("name").equals("first")){
- spanTag .setAttribute("value", "bbb");
- } }
- }</p>
我已经用span过滤掉了其他内容,部分源码如上,我现在想将上面文本中的标签中的name="first"的value值改为"bbb",然后返回所有文本即改过的(sText),但是不能用sText.replace()方法,因为原文本中可能有多个value="aaa"的值.
大家有什么好的建议,最好是直接可以用htmlparser处理的.谢谢
问题补充:非常感谢大家的帮忙,尤其是lzj0470和ferreousbox,上面的问题已经解决,
如果现在我想将字符串
"
测试文本一<input name="text1/" type="text" value="text1">
测试文本二其他数据;"
中的"测试文本二"替换成"此处已经被替换";即返回的字符串为:
"
测试文本一<input name="text1/" type="text" value="text1">
此处已经被替换其他数据;"
这样该怎么实现,因为span标签中还含有等标签,而我对正则表达式又不熟,所以,sText.replace()方法实现不了,还是要请教大家了,谢谢哈