diff --git a/_modules/oscap/utils.py b/_modules/oscap/utils.py
index d81825d..5f90ef0 100644
--- a/_modules/oscap/utils.py
+++ b/_modules/oscap/utils.py
@@ -62,22 +62,28 @@
     return groups
 
 
-def _get_rules(groups):
+def _get_rules(document, groups):
+    def _append_rule(rules, rule):
+        rules[rule['id']] = {
+            'title': rule.title.cdata,
+            'severity': rule['severity'],
+            'ident': rule.ident.cdata,
+            'description': rule.description.cdata}
+
     rules = {}
+    if hasattr(document, 'Rule'):
+        for rule in document.Rule:
+            _append_rule(rules, rule)
     for group in groups:
         if hasattr(group, 'Rule'):
             for rule in group.Rule:
-                rules[rule['id']] = {
-                    'title': rule.title.cdata,
-                    'severity': rule['severity'],
-                    'ident': rule.ident.cdata,
-                    'description': rule.description.cdata}
+                _append_rule(rules, rule)
     return rules
 
 
 def _parse_xccdf_doc(document):
     groups = _get_flatten_groups(document.Benchmark)
-    rules = _get_rules(groups)
+    rules = _get_rules(document.Benchmark, groups)
 
     results = []
     for result in document.Benchmark.TestResult.rule_result:
