У меня 2 xml файл 1 содержит данные, а другой содержит схему данных.Я хочу прочитать файл данных и поместить значение в файл схемы.
Это мой файл данных
<?xml version="1.0"?>
<ROWSET>
<ROW>
<CLTCORP>001</CLTCORP>
<CTLITEM>1010008</CTLITEM>
<CTLDIV>17 </CTLDIV>
<CTLFAC>DDPH</CTLFAC>
<CORP>001</CORP>
<DIVISION>17</DIVISION>
<FACILITY>DDPH</FACILITY>
<CORP_ITEM_CD>1010008</CORP_ITEM_CD>
<DST_CNTR>DDPH</DST_CNTR>
<PROD_CLASS>1010</PROD_CLASS>
<DEPT> </DEPT>
</ROW>
</ROWSET>
Я читаю вышеупомянутый файл данных с использованием XML Reader
val supplyData="XMLData/DataInput.xml"
val booksFileTag1 = "ROWSET"
val df1 = (new XmlReader()).withRowTag(booksFileTag1).xmlFile(sqlContext, supplyData).toDF()
df1.registerTempTable("SupplyData")
val corpDF = sqlContext.sql("""select * from SupplyData """)
И это моя XML-схема
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2014 rel. 2 sp1 (x64) (http://www.altova.com)-->
<ItemMaster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ItemMaster.xsd">
<DocumentData>
<Document ReleaseId="String" VersionId="String" SystemEnvironmentCd="String">
<DocumentID >0</DocumentID>
<AlternateDocumentID >String</AlternateDocumentID>
<InboundOutboundInd >String</InboundOutboundInd>
<DocumentNm >PurchaseOrder</DocumentNm>
<CreationDt >2001-12-17T09:30:47Z</CreationDt>
<Description Type=""/>
<SourceApplicationCd >String</SourceApplicationCd>
<TargetApplicationCd >String</TargetApplicationCd>
<Note Type=""/>
<GatewayNm >String</GatewayNm>
<SenderId QualifierCd="String">String</SenderId>
<ReceiverId QualifierCd="String">String</ReceiverId>
<RoutingSystemNm >String</RoutingSystemNm>
<InternalFileTransferInd >String</InternalFileTransferInd>
<InterchangeDate >1957-08-13</InterchangeDate>
<InterchangeTime >09:30:47+05:00</InterchangeTime>
<ExternalTargetInd >a</ExternalTargetInd>
<DataClassification >
<DataClassificationLevel>
<Code>normalizedString</Code>
<Description>a</Description>
</DataClassificationLevel>
<BusinessSensitivityLevel>
<Code>normalizedString</Code>
<Description>a</Description>
</BusinessSensitivityLevel>
<PHIdataInd>a</PHIdataInd>
<PCIdataInd>a</PCIdataInd>
<PPIdataInd>a</PPIdataInd>
</DataClassification>
</Document>
<DocumentAction>
<ActionTypeCd >String</ActionTypeCd>
<RecordTypeCd >String</RecordTypeCd>
</DocumentAction>
</DocumentData>
<ChainItem>
<CorporationId ></CorporationId>
<DivisionId ></DivisionId>
<DistributionCenterId ></DistributionCenterId>
<WarehouseId ></WarehouseId>
<CorporateItemCd ></CorporateItemCd>
<DepartmentId ></DepartmentId>
</ChainItem>
</ItemMaster>
Я снова читаю это с помощью XML Reader
val suppySchema="DataSet/SupplySchema.xml"
val booksFileTag = "ItemMaster"
val df = (new XmlReader()).withRowTag(booksFileTag).xmlFile(sqlContext, suppySchema).toDF()
df.registerTempTable("SupplySchema")
val CorporationIdDF = sqlContext.sql("""select *from SupplySchema """)
Теперь моя цель - прочитать значение ROWSET.ROW.CORP из файла XML данных.и обновите это поле в теге ChainItem.CorporationId в XML-файле схемы.Может ли кто-нибудь помочь мне с этим.