所以,我有一个XHTML文档报告框架,我想通过获取某些ID的元素并设置其内容来填充它。Java getElementById()或Alternative
我试过getElementById(),并返回null(因为,因为我发现id不是隐式地“id”并且需要在模式中声明)。
panel.setDocument(Main.class.getResource("/halreportview/DefaultSiteDetails.html").toString());
panel = populateDefaultReport(panel);
Element header1 = panel.getDocument().getElementById("header1");
header1.setTextContent("<span class=\"b\">Instruction Type:</span> Example<br/><span class=\"b\">Allocated To:</span> "+employee.toString()+"<br/><span class=\"b\">Scheduled Date:</span> "+dateFormat.format(scheduledDate));
所以,我尝试了一些解决方法,因为我不想验证我的XHTML文档。我试图像这样向文件顶部添加一个快速的DTD;
<?xml version="1.0"?>
<!DOCTYPE foo [<!ATTLIST bar id ID #IMPLIED>]>
但getElementById()仍然返回null。所以在希望支持的XHTML文档中尝试使用xml:id
而不是id,但再次没有运气。所以相反,我尝试使用getElementsByTagName()并遍历结果检查ID。这工作,并找到了正确的元素(由输出打印“找到它”确认),但是当我尝试调用此元素上的setTextContent时,我仍然得到一个NullPointException。下面的代码;
Element header1;
NodeList sections = panel.getDocument().getElementsByTagName("p");
for (int i = 0; i < sections.getLength(); ++i) {
if (((Element)sections.item(i)).getAttribute("id").equals("header1")) {
System.out.println("Found it");
header1 = (Element) sections.item(i);
header1.setTextContent("<span class=\"b\">Instruction Type:</span> Example<br/><span class=\"b\">Allocated To:</span> "+employee.toString()+"<br/><span class=\"b\">Scheduled Date:</span> "+dateFormat.format(scheduledDate));
}
}
我在这一个上放松我的想法。我必须忍受某种根本的误解,认为这应该如何工作。有任何想法吗?
编辑;从我的XHTML文件摘录下删除了CSS。
<html>
<head>
<title>Site Details</title>
<style type="text/css">
</style>
</head>
<body>
<div class="header">
<p></p>
<img src="#" alt="Logo" height="81" width="69"/>
<p id="header1"><span class="b">Instruction Type:</span> Example<br/><span class="b">Allocated To:</span> Example<br/><span class="b">Scheduled Date:</span> Example</p>
</div>
</body>
</html>
你应该提到的是你想率先实现什么? – Makky
@Makky我想要一个具有特定ID的元素,然后设置它的内容。如果不明确,道歉。 –
发布您的HTML文件 – Makky