我在Azure-Databricks中使用spark-xml库。但是我不能得到正确的选项来读取这种包含多个名称空间的文件。
因此,我正在寻找一些帮助,让这在选项编码,或任何其他方法。
这是一个剥离的样品。
<msg:TrainTrackingMessage xmlns:msg="be:brail:nmbs-it:esb:msg:traintraffic" xmlns:trtf="be:brail:nmbs-it:esb:traintraffic" xmlns:gene="be:brail:nmbs-it:esb:generalelements">
<gene:Event>
<gene:EventType>tracking</gene:EventType>
<gene:EventMessage>TrainTracking</gene:EventMessage>
<gene:EventTimeStamp>2018-09-27T14:13:15.458439</gene:EventTimeStamp>
</gene:Event>
<gene:Train>
<gene:TrainKey>
<gene:CirculationType>1</gene:CirculationType>
<gene:Discriminator>0</gene:Discriminator>
<gene:DepartureDate>2018-09-27</gene:DepartureDate>
</gene:TrainKey>
<gene:TrainNumberEBP>2E0xaZ12</gene:TrainNumberEBP>
<gene:TrainDetails>
<gene:TrainGroup>1</gene:TrainGroup>
</gene:TrainDetails>
</gene:Train>
<trtf:TrainTracking>
<gene:ItineraryPoint>
<gene:PtcarIdentification>592</gene:PtcarIdentification>
<gene:OrderNumber>150</gene:OrderNumber>
<gene:ItineraryPointDetails>
<gene:OperationCode>=</gene:OperationCode>
<gene:CommercialStop>2</gene:CommercialStop>
</gene:ItineraryPointDetails>
<gene:ItineraryPointTimeInfo>
<gene:ArrivalTime>14:10:47</gene:ArrivalTime>
<gene:DepartureTime>14:10:54</gene:DepartureTime>
</gene:ItineraryPointTimeInfo>
<gene:ItineraryTechnicalInfo>
<gene:EngineType>21</gene:EngineType>
<gene:TractionCode>E</gene:TractionCode>
<gene:TractionOperator/>
</gene:ItineraryTechnicalInfo>
</gene:ItineraryPoint>
<trtf:GPSPosition>
<trtf:GPSAltitude>51</trtf:GPSAltitude>
</trtf:GPSPosition>
<trtf:Libelle>E2412</trtf:Libelle>
<trtf:TrackingPointInfo>
<trtf:TrackingType>2</trtf:TrackingType>
<trtf:TrackingOrigin>0</trtf:TrackingOrigin>
</trtf:TrackingPointInfo>
<trtf:TrackingTimeInfo>
<trtf:Delay>1639</trtf:Delay>
</trtf:TrackingTimeInfo>
</trtf:TrainTracking>
如果人们想找一些熟悉的东西,这就够了。
import xml.etree.ElementTree as ET
xmlfiles = dbutils.fs.ls(storage_mount_name)
##Get attribute names (for now I took all leafs of the xml structure)
firstfile = xmlfiles[0].path.replace('dbfs:','/dbfs')
root = ET.parse(firstfile).getroot()
attributes = [node.tag for node in root.iter() if len(node)==0]
clean_attribute_names = [re.sub(r'\{.*\}', '', a) for a in attributes]
#Create Dataframe and save it as csv
df = pd.DataFrame(columns=clean_attribute_names, index=xmlfiles)
for xf in xmlfiles:
afile = xf.path.replace('dbfs:','/dbfs')
root = ET.parse(afile).getroot()
df.loc[afile] = [node.text for node in root.iter() if node.tag in attributes]
我谷歌了很多,但运气不好。我不能从XML列中检索数据,这些数据来自使用sp_OAGetProperty的Web服务。 XML列包含。。 当我执行下面的语句时,我得到了NULL (但如果我删除所有XML名称空间xmlns:xsi=”就可以了http://www.w3.org/2001/XMLSchema-instance“xmlns:xsd=”http://www.w3.org/2001/XMLSc
我有这个XML文件,我需要知道名称空间的URI。 我使用Java(jdk16)和这段代码来获取它们: 但是运行这段代码会给我带来以下结果: 属性的名称是正确的,但是NamespaceURI和前缀不是我要寻找的值。 我到底做错了什么? 提前感谢您的回答。
问题内容: 我有多个包含不同类型的txt文件的zip文件。如下所示: 如何使用pandas读取每个文件而不提取它们? 我知道每个zip文件是否为1个文件,我可以对read_csv使用压缩方法,如下所示: 任何有关如何执行此操作的帮助都将非常有用。 问题答案: 你可以传递到构建从包装成一个多文件一个CSV文件。 码: 将所有内容读入字典的示例:
主要内容:命名冲突,使用前缀来避免命名冲突,XML 命名空间 - xmlns 属性,统一资源标识符(URI,全称 Uniform Resource Identifier),默认的命名空间,实际使用中的命名空间XML 命名空间提供避免元素命名冲突的方法。 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。 这个 XML 携带 HTML 表格的信息: <table> <tr> <td>Apples</td> <td>Bananas</td> <
我正在寻找MSDN论坛上的一些信息,但找不到一个好的论坛/在spark网站上阅读时,我有暗示在这里我会有更好的机会。因此,最重要的是,我想读取一个 Blob 存储,其中有一个连续的 XML 文件源,所有小文件,最后我们将这些文件存储在 Azure DW 中。使用 Azure 数据砖,我可以使用 Spark 和 python,但我找不到“读取”xml 类型的方法。一些示例脚本使用了一个库 xml.e
问题内容: 我知道此页面中有很多此主题,但可悲的是,我仍然无法解决我的问题。 这是我的xml代码: 这是我在Java中的代码: 是的,像往常一样,我无法获得输出,因为它仅显示: 仅当我删除ns:1时,才会显示输出,xml的代码将如下所示: 问题是,我在网上发现的所有建议似乎都没有用: 例如,我已经尝试过 等2 .. 我能得到的唯一最好的输出是,它将显示: 谁能给我正确的代码给我解决我的问题? 提前