如何用Java中的图像链接替换String?

时间:2013-03-28 09:38:43

标签: java html-parsing

我正在使用基于Java World Wind的应用程序,该应用程序使用HTML。我有一个包含所有感兴趣的地方的数据库,其中包含name,text_description,icon_link等属性...我的目的是每次点击地球上不同的感兴趣的地方时,用另一个替换HTML的一些文本字符串。所以我需要的是解析HTML文档,搜索关键字并用我数据库中的相应字符串替换它。我写了一个类,负责搜索关键字并用适当的字符串替换它:

public class MyNodeVisitor extends NodeVisitor {
        String name;
        String text;
        String icon;

        public MyNodeVisitor() {

        }

        public MyNodeVisitor(String Name, String Text, String IconPath){
            this.name = Name;
            this.text = Text;
            this.icon = IconPath;
        }

        public void visitStringNode (Text string)
        {
            if (string.getText().equals("DataName")) {
                string.setText(name);
            }
            else if (string.getText().equals("DataText")){
                  string.setText(text);
            }
            else if(string.getText().equals("DataIcon")){
                     string.setText(icon);

            }
        }
    }

因此,在我的HTML中,我定义了文本字符串DataName,DataText和DataIcon,我希望将其替换为从数据库调用的文本字符串。

上面提到的类在我的代码中以下列方式使用:

        NodeList nl = new NodeList();
        String htmlString = null;
        InputStream contentStream = null;
        contentStream = WWIO.openFileOrResourceStream(BROWSER_BALLOON, this.getClass());
        htmlString = WWIO.readStreamToString(contentStream, null);

      try {
            Parser parser = new Parser(htmlString);
            nl = parser.parse(null);
            nl.visitAllNodesWith(new MyNodeVisitor(resultStr2,textString,resultStr3));
            nl.toString();

        } catch (ParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   

        String output = nl.toHtml();
        return output;  

其中resultStr2,textString和resultStr3是应该替换HTML中的键字符串“DataName”,“DataText”和“DataIcon”的字符串。

问题在于,替换适用于前两个字符串DataName和DataText(这意味着,每当我调用数据库的不同元素时,我的名称和文本都适用于具体元素),它不会为DataIcon工作。调试说,它只是无法搜索DataIcon String,即使我已经在我的HTMl中定义了它,就像那样:

<div class="tabbertab">
      <h2>Pictures</h2>
        <div id="album">
            <ul class="gallery">
                <li><a href="#nogo" tabindex="1">1<img  src="DataIcon" alt="landscape image 1" title="landscape image 1" /></a></li>
                <li><a href="#nogo" tabindex="1">2<img  src="C:\thesis\100GreatP\eclipse_ws\test\data\pictures\1\pyramid2.jpg" alt="landscape image 2" title="landscape image 2" /></a></li>

            </ul>
        </div>   
     </div>

我不知道它有什么问题,我感谢各种帮助。谢谢!

0 个答案:

没有答案