Compare commits
	
		
			4 Commits
		
	
	
		
			xpath_vers
			...
			4128196b93
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4128196b93 | |||
| 3b96031a42 | |||
| ec1b56677d | |||
| 1a72dc202d | 
| @@ -1,3 +1,5 @@ | ||||
| from typing import Any | ||||
|  | ||||
| from lxml import etree, html | ||||
| from io import BytesIO | ||||
|  | ||||
| @@ -79,9 +81,11 @@ def xpath(source: str, xpath: str) -> str: | ||||
|     else: | ||||
|         result_string = "" | ||||
|         for e in result: | ||||
|             result_string += etree.tostring(e, pretty_print=True).decode() + "\n" | ||||
|         return result_string, "node" | ||||
|  | ||||
|             if isinstance(e, etree._Element): | ||||
|                 result_string += etree.tostring(e, pretty_print=True).decode() + "\n" | ||||
|             else: | ||||
|                 result_string += str(e) + "\n" | ||||
|     return result_string, "node" | ||||
|  | ||||
|  | ||||
| def xsd(source: str, xsd: str) -> bool: | ||||
|   | ||||
| @@ -18,6 +18,10 @@ import javax.xml.transform.stream.StreamSource; | ||||
| import javax.xml.validation.Schema; | ||||
| import javax.xml.validation.SchemaFactory; | ||||
| import javax.xml.validation.Validator; | ||||
| import javax.xml.xpath.XPath; | ||||
| import javax.xml.xpath.XPathConstants; | ||||
| import javax.xml.xpath.XPathExpression; | ||||
| import javax.xml.xpath.XPathFactory; | ||||
| import java.io.ByteArrayOutputStream; | ||||
| import java.io.OutputStreamWriter; | ||||
| import java.io.StringReader; | ||||
| @@ -61,6 +65,13 @@ public class Xalan implements XmlEngine{ | ||||
|         return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.TEXT_NODE; | ||||
|     } | ||||
|  | ||||
|     private boolean isAttributeNode(Node n) { | ||||
|         if (n == null) | ||||
|             return false; | ||||
|         short nodeType = n.getNodeType(); | ||||
|         return nodeType == Node.CDATA_SECTION_NODE || nodeType == Node.ATTRIBUTE_NODE; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String processXSLT(XMLMultipleFilesData[] data, String transform) throws Exception { | ||||
|         throw new UnsupportedOperationException("Xalan does not support multiple files XSLT processing"); | ||||
| @@ -101,7 +112,10 @@ public class Xalan implements XmlEngine{ | ||||
|                     for (Node nn = n.getNextSibling(); isTextNode(nn); nn = nn.getNextSibling()) { | ||||
|                         resultString.append(nn.getNodeValue()); | ||||
|                     } | ||||
|                 } else { | ||||
|                 } else if (isAttributeNode(n)) { | ||||
|                     resultString.append(n.getNodeValue()); | ||||
|                 } | ||||
|                 else { | ||||
|                     ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | ||||
|                     serializer.transform(new DOMSource(n), new StreamResult(new OutputStreamWriter(outputStream))); | ||||
|                     resultString.append(outputStream); | ||||
|   | ||||
| @@ -18,7 +18,6 @@ const result = ref(''); | ||||
|  | ||||
| let enginesForCurrentTool = ref(["saxon", "xalan", "libxml"]); | ||||
|  | ||||
| const allVersionsOfXpath = ["2.0", "3.0", "3.1"]; | ||||
| const allVersions = ["1.0", "2.0", "3.0", "3.1"]; | ||||
| let versionsForCurrentEngine = ref([""]); | ||||
|  | ||||
| @@ -74,7 +73,7 @@ function changeAvailableVersionsOfXPath() { | ||||
|     if(engine.value == "xalan" || engine.value == "libxml") | ||||
|         versionsForCurrentEngine.value = ["1.0"]; | ||||
|     else if (engine.value == "saxon") | ||||
|         versionsForCurrentEngine.value = allVersionsOfXpath; | ||||
|         versionsForCurrentEngine.value = allVersions; | ||||
| } | ||||
|  | ||||
| function selectDefaultEngine() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user