不幸的是,
Tag类的构造函数没有将名称更改为小写:
private Tag(String tagName) { this.tagName = tagName.toLowerCase();}
但是有两种方法可以改变这种行为:
- 如果您想要一个 干净的 解决方案,则可以克隆/下载JSoup Git并更改此行。
- 如果您想使用 肮脏的 解决方案,则可以使用反射。
#2的示例:
Field tagName = Tag.class.getDeclaredField("tagName"); // Get the field which contains the tagnametagName.setAccessible(true); // Set accessible to allow changesfor( Element element : doc.select("*") ) // Iterate over all tags{ Tag tag = element.tag(); // Get the tag of the element String value = tagName.get(tag).toString(); // Get the value (= name) of the tag if( !value.startsWith("#") ) // You can ignore all tags starting with a '#' { tagName.set(tag, value.toUpperCase()); // Set the tagname to the uppercase }}tagName.setAccessible(false); // Revert to false
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)