From d0235c5da058a1d269180edf8f88554ac78a7616 Mon Sep 17 00:00:00 2001 From: Xander Bailey Date: Sat, 6 Apr 2024 15:05:26 +0100 Subject: [PATCH] Fix for xml expression to not parse arbitrary strings --- src/main/scala/com/databricks/spark/xml/functions.scala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/scala/com/databricks/spark/xml/functions.scala b/src/main/scala/com/databricks/spark/xml/functions.scala index edda2e36..46b497da 100644 --- a/src/main/scala/com/databricks/spark/xml/functions.scala +++ b/src/main/scala/com/databricks/spark/xml/functions.scala @@ -17,7 +17,6 @@ package com.databricks.spark.xml import org.apache.spark.sql.Column -import org.apache.spark.sql.catalyst.parser.CatalystSqlParser import org.apache.spark.sql.types.DataType /** @@ -28,14 +27,13 @@ object functions { /** * Parses a column containing a XML string into a `StructType` with the specified schema. * - * @param e a string column containing XML data + * @param col a string column containing XML data * @param schema the schema to use when parsing the XML string. Must be a StructType if * column is string-valued, or ArrayType[StructType] if column is an array of strings * @param options key-value pairs that correspond to those supported by [[XmlOptions]] */ - def from_xml(e: Column, schema: DataType, options: Map[String, String] = Map.empty): Column = { - val expr = CatalystSqlParser.parseExpression(e.toString()) - new Column(XmlDataToCatalyst(expr, schema, XmlOptions(options))) + def from_xml(col: Column, schema: DataType, options: Map[String, String] = Map.empty): Column = { + new Column(XmlDataToCatalyst(col.expr, schema, XmlOptions(options))) } }