IMG タグのテキストと src 属性の両方を更新する必要がある HTML ドキュメントがあります。私はJavaで働いています。HTML の次の文字列を置き換えたい: DataName、DataText、および DataIcon。
<body>
<h1 align="center">DataName</h1>
<div class="tabber">
<div class="tabbertab">
<h2>Info</h2>
<p>DataText</p>
</div>
<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>
<div class="tabbertab">
<h2>Video</h2>
</div>
</div>
文字列 DataName と DataText を置き換えることに成功しましたが、データベースに String として保存されている imageURL で DataIcon を置き換えることに成功していません。デバッグを確認すると、DataIcon 文字列の検索に失敗しただけです。私は HTMLparser を使用しており、問題を適用するために次のクラスを作成しました。
public class MyNodeVisitor extends NodeVisitor {
String name;
String text;
String icon;
public MyNodeVisitor() {
}
public MyNodeVisitor(String IconPath, String Name, String Text){
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("DataIcon")){
string.setText(icon);
}
else if (string.getText().equals("DataText")){
string.setText(text);
}
}
}
このような方法でクラスがアプリケーションコードに適用されました
NodeList nl = new NodeList();
String htmlString = null;
InputStream contentStream = null;
String textString = null;
String resultStr = getDatabaseAttribute(name,"DESCRIPTION");
String resultStr2 = getDatabaseAttribute(name,"NAME");
String resultStr3 = getDatabaseAttribute(name,"ICON_path");
try
{
// Read the URL content into a String using the default encoding (UTF-8).
contentStream = WWIO.openFileOrResourceStream(BROWSER_BALLOON, this.getClass());
htmlString = WWIO.readStreamToString(contentStream, null);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
WWIO.closeStream(contentStream, resultStr);
}
try {
Parser parser = new Parser(htmlString);
nl = parser.parse(null);
nl.visitAllNodesWith(new MyNodeVisitor(resultStr3, resultStr2,resultStr));
nl.toString();
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String output = nl.toHtml();
return output;
誰でも私を助けることができますか?全体の問題は、IMG タグで DataIcon 文字列を検索できないことです。ご協力いただきありがとうございます。