解析器JSoup将标签更改为小写字母
我做了一些研究,似乎标准的Jsoup做出了更改。我想知道是否有一种配置方式,或者是否可以将其他解析器转换为Jsoup文档,或者通过某种方式解决此问题?
回答:
不幸的是,Tag
类的构造函数没有将名称更改为小写:
private Tag(String tagName) { this.tagName = tagName.toLowerCase();
}
但是有两种方法可以改变这种行为:
- 如果您想要一个 干净的 解决方案,则可以克隆/下载JSoup Git并更改此行。
- 如果您想使用 肮脏的 解决方案,则可以使用反射。
Field tagName = Tag.class.getDeclaredField("tagName"); // Get the field which contains the tagnametagName.setAccessible(true); // Set accessible to allow changes
for( 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
以上是 解析器JSoup将标签更改为小写字母 的全部内容, 来源链接: utcz.com/qa/406087.html