kunfei 3 лет назад
Родитель
Сommit
4aa3306500

+ 7 - 3
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt

@@ -3,6 +3,7 @@ package io.legado.app.model.analyzeRule
 import androidx.annotation.Keep
 import androidx.annotation.Keep
 import org.jsoup.Jsoup
 import org.jsoup.Jsoup
 import org.jsoup.nodes.Element
 import org.jsoup.nodes.Element
+import org.jsoup.parser.Parser
 import org.jsoup.select.Collector
 import org.jsoup.select.Collector
 import org.jsoup.select.Elements
 import org.jsoup.select.Elements
 import org.jsoup.select.Evaluator
 import org.jsoup.select.Evaluator
@@ -17,10 +18,13 @@ class AnalyzeByJSoup(doc: Any) {
     private var element: Element = parse(doc)
     private var element: Element = parse(doc)
 
 
     private fun parse(doc: Any): Element {
     private fun parse(doc: Any): Element {
-        return when (doc) {
-            is Element -> doc
-            else -> Jsoup.parse(doc.toString())
+        if (doc is Element) {
+            return doc
         }
         }
+        if (doc.toString().startsWith("<?xml", true)) {
+            return Jsoup.parse(doc.toString(), Parser.xmlParser())
+        }
+        return Jsoup.parse(doc.toString())
     }
     }
 
 
     /**
     /**

+ 7 - 3
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByXPath.kt

@@ -5,6 +5,7 @@ import androidx.annotation.Keep
 import org.jsoup.Jsoup
 import org.jsoup.Jsoup
 import org.jsoup.nodes.Element
 import org.jsoup.nodes.Element
 import org.jsoup.nodes.TextNode
 import org.jsoup.nodes.TextNode
+import org.jsoup.parser.Parser
 import org.jsoup.select.Elements
 import org.jsoup.select.Elements
 
 
 @Keep
 @Keep
@@ -13,10 +14,13 @@ class AnalyzeByXPath(doc: Any) {
     private var element: Element = parse(doc)
     private var element: Element = parse(doc)
 
 
     private fun parse(doc: Any): Element {
     private fun parse(doc: Any): Element {
-        return when (doc) {
-            is Element -> doc
-            else -> Jsoup.parse(doc.toString())
+        if (doc is Element) {
+            return doc
         }
         }
+        if (doc.toString().startsWith("<?xml", true)) {
+            return Jsoup.parse(doc.toString(), Parser.xmlParser())
+        }
+        return Jsoup.parse(doc.toString())
     }
     }
 
 
     internal fun getElements(xPath: String): Elements? {
     internal fun getElements(xPath: String): Elements? {