1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.any23.validator.rule;
18
19 import java.util.List;
20
21 import org.apache.any23.extractor.html.DomUtils;
22 import org.apache.any23.validator.DOMDocument;
23 import org.apache.any23.validator.Fix;
24 import org.apache.any23.validator.Rule;
25 import org.apache.any23.validator.RuleContext;
26 import org.w3c.dom.Node;
27
28
29
30
31 public class MissingItemscopeAttributeValueFix implements Fix {
32
33 private static final String EMPTY_ITEMSCOPE_VALUE = "itemscope";
34
35 private static final String ITEMSCOPE = "itemscope";
36
37
38
39
40 public MissingItemscopeAttributeValueFix() {
41
42 }
43
44 @Override
45 public String getHRName() {
46 return "missing-itemscope-value-fix";
47 }
48
49 @Override
50 public void execute(Rule rule, @SuppressWarnings("rawtypes") RuleContext context, DOMDocument document) {
51
52 List<Node> itemScopeContainerElements = document.getNodesWithAttribute(ITEMSCOPE);
53 for (Node itemScopeContainerElement : itemScopeContainerElements) {
54 Node newItemScopeContainerElement = itemScopeContainerElement;
55 Node itemScopeNode = newItemScopeContainerElement.getAttributes().getNamedItem(ITEMSCOPE);
56 if (itemScopeNode.getTextContent() == null || itemScopeNode.getTextContent() == "") {
57 String node = DomUtils.getXPathForNode(itemScopeContainerElement);
58 document.addAttribute(node, ITEMSCOPE, EMPTY_ITEMSCOPE_VALUE);
59 }
60 }
61 }
62 }