0

我正在开发基于 Java World Wind 的应用程序,该应用程序使用其中包含的 HTML。我有一个数据库,其中包含所有具有名称、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 字符串,即使我已经在我的 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>

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

4

0 回答 0