2009-11-07 41 views
1

更新:嗨帕斯卡,感謝您的快速回復,這幾乎是我想要的。每個標籤的新鏈接都不相同,您可以幫我做到這一點。如何使用htmlParser替換屬性?

所有我需要做的是遍歷出現在輸入字符串中的所有鏈接標籤,抓住他們的價值,並用不同的鏈接取代了令人不安的鏈接文字

我是新的使用Java中的HTMLParser ,請幫助我解決這個問題。

htmlString = <a class="user" href="">first name</a> posted on <a class="user" href="">Test Test</a>'s wiki entry, <a href="http://localhost:8080/b/lll/ddd">werwrwrwerwerwer</a>, in 

我需要替換<a class="user" href="">href鏈接到標籤另一個鏈接。

+0

你應該嘗試格式化你的問題。也許它越來越清晰了。 – tangens

+1

你的意思是這個嗎? http://htmlparser.sourceforge.net/ –

+0

試着和>和< 原樣,您的代碼示例是不可讀... – JasonWyatt

回答

4

如果您使用htmlparser作爲HTML解析器,則可以使用visitors進行一些轉換。

例如,你可以創建自己的NodeVisitor訪問a標籤:

public class MyLinkVisitor extends NodeVisitor { 

    public MyLinkVisitor() { } 

    public void visitTag(Tag tag) { 
     if (tag.getTagName().equals("A")) { 
      LinkTag link = (LinkTag) tag; 
      link.setLink("http://newLink/"); //implement your logic here 
     } 
    } 
} 

然後,創建一個Parser,解析HTML字符串並訪問返回的節點列表:

Parser parser = new Parser(htmlString); 
NodeList nl = parser.parse(null); 
nl.visitAllNodesWith(new MyLinkVisitor()); 
System.out.println(nl.toHtml()); 

這只是一種方法。

+0

喜帕, 感謝您的快速回復替換所有< and >人物,這幾乎是我想要的。每個標籤的新鏈接都不相同,您可以幫我做到這一點。 謝謝 Micheal – user199471

+0

@Michael正如我在行評論中寫的,你必須「在這裏實現你的邏輯」。如果你給我關於邏輯的一些提示,我可以幫助你,但我無法準確猜測你想要做什麼。所以,請澄清你的需求。 –

+0

帕斯卡爾,我明白了..謝謝你的幫助.. – user199471