首页 \ 问答 \ 通过xslt在xml的单个元素中使用多个名称空间(use multiple namespace in single element of xml through xslt)

通过xslt在xml的单个元素中使用多个名称空间(use multiple namespace in single element of xml through xslt)

我对XSLT非常陌生并面临一个问题。

请查找通过事务代码XSLT_TOOL创建的转换代码:

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">

  <tt:root name="ROOT" type="?"/>
  <tt:root name="VAT_DATA" type="ddic:ZZCVAT_DECLARATION_MAIN"/>
  <tt:template>
    <JPK xmlns="http://jpk.mf.gov.pl/wzor/2016/03/09/03094/"
         xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/">
      <NAGLOWEK>
        <KODFORMULARZA kodSystemowy="JPK_VAT (2)" tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.KODFORMULARZA" wersjaSchemy="1-0"/>
        <WARIANTFORMULARZA tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.WARIANTFORMULARZA"/>
        <CELZLOZENIA tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.CELZLOZENIA"/>
        <DATAWYTWORZENIAJPK tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATAWYTWORZENIAJPK"/>
        <DATAOD tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATAOD"/>
        <DATADO tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATADO"/>
        <DOMYSLNYKODWALUTY tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DOMYSLNYKODWALUTY"/>
        <KODURZEDU tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.KODURZEDU"/>
      </NAGLOWEK>
      <PODMIOT1>
        <IDENTYFIKATORPODMIOTU>
          <etd:NIP tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.NIP"/>
          <etd:PELNANAZWA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.PELNANAZWA"/>
          <etd:REGON tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.REGON"/>
        </IDENTYFIKATORPODMIOTU>
        <ADRESPODMIOTU>
          <etd:KODKRAJU tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.KODKRAJU"/>
          <etd:WOJEWODZTWO tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.WOJEWODZTWO"/>
          <etd:POWIAT tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.POWIAT"/>
          <etd:GMINA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.GMINA"/>
          <etd:ULICA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.ULICA"/>
          <etd:NRDOMU tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.NRDOMU"/>
          <etd:MIEJSCOWOSC tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.MIEJSCOWOSC"/>
          <etd:KODPOCZTOWY tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.KODPOCZTOWY"/>
          <etd:POCZTA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.POCZTA"/>
        </ADRESPODMIOTU>
      </PODMIOT1>
      <tt:loop ref=".VAT_DATA.JPK.SPRZEDAZWIERSZ">
        <SPRZEDAZWIERSZ typ="G">
          <LPSPRZEDAZY tt:value-ref="LPSPRZEDAZY"/>
          <NRKONTRAHENTA tt:value-ref="NRKONTRAHENTA"/>
          <NAZWAKONTRAHENTA tt:value-ref="NAZWAKONTRAHENTA"/>
          <ADRESKONTRAHENTA tt:value-ref="ADRESKONTRAHENTA"/>
          <DOWODSPRZEDAZY tt:value-ref="DOWODSPRZEDAZY"/>
          <DATAWYSTAWIENIA tt:value-ref="DATAWYSTAWIENIA"/>
          <DATASPRZEDAZY tt:value-ref="DATASPRZEDAZY"/>
          <K_10 tt:value-ref="K_10"/>
          <K_11 tt:value-ref="K_11"/>
          <K_12 tt:value-ref="K_12"/>
          <K_13 tt:value-ref="K_13"/>
          <K_14 tt:value-ref="K_14"/>
          <K_15 tt:value-ref="INNER_STR_31.K_15"/>
          <K_16 tt:value-ref="INNER_STR_31.K_16"/>
          <K_17 tt:value-ref="INNER_STR_32.K_17"/>
          <K_18 tt:value-ref="INNER_STR_32.K_18"/>
          <K_19 tt:value-ref="INNER_STR_33.K_19"/>
          <K_20 tt:value-ref="INNER_STR_33.K_20"/>
          <K_21 tt:value-ref="K_21"/>
          <K_22 tt:value-ref="K_22"/>
          <K_23 tt:value-ref="INNER_STR_34.K_23"/>
          <K_24 tt:value-ref="INNER_STR_34.K_24"/>
          <K_25 tt:value-ref="INNER_STR_35.K_25"/>
          <K_26 tt:value-ref="INNER_STR_35.K_26"/>
          <K_27 tt:value-ref="INNER_STR_36.K_27"/>
          <K_28 tt:value-ref="INNER_STR_36.K_28"/>
          <K_29 tt:value-ref="INNER_STR_37.K_29"/>
          <K_30 tt:value-ref="INNER_STR_37.K_30"/>
          <K_31 tt:value-ref="K_31"/>
          <K_32 tt:value-ref="INNER_STR_38.K_32"/>
          <K_33 tt:value-ref="INNER_STR_38.K_33"/>
          <K_34 tt:value-ref="INNER_STR_39.K_34"/>
          <K_35 tt:value-ref="INNER_STR_39.K_35"/>
          <K_36 tt:value-ref="K_36"/>
          <K_38 tt:value-ref="K_38"/>
          <K_39 tt:value-ref="K_39"/>
        </SPRZEDAZWIERSZ>
      </tt:loop>
      <SPRZEDAZCTRL>
        <LICZBAWIERSZYSPRZEDAZY tt:value-ref=".VAT_DATA.JPK.SPRZEDAZCTRL.LICZBAWIERSZYSPRZEDAZY"/>
        <PODATEKNALEZNY tt:value-ref=".VAT_DATA.JPK.SPRZEDAZCTRL.PODATEKNALEZNY"/>
      </SPRZEDAZCTRL>
      <tt:loop ref=".VAT_DATA.JPK.ZAKUPWIERSZ">
        <ZAKUPWIERSZ typ="G">
          <LPZAKUPU tt:value-ref="LPZAKUPU"/>
          <NRDOSTAWCY tt:value-ref="NRDOSTAWCY"/>
          <NAZWADOSTAWCY tt:value-ref="NAZWADOSTAWCY"/>
          <ADRESDOSTAWCY tt:value-ref="ADRESDOSTAWCY"/>
          <DOWODZAKUPU tt:value-ref="DOWODZAKUPU"/>
          <DATAZAKUPU tt:value-ref="DATAZAKUPU"/>
          <DATAWPLYWU tt:value-ref="DATAWPLYWU"/>
          <K_43 tt:value-ref="INNER_STR_51.K_43"/>
          <K_44 tt:value-ref="INNER_STR_51.K_44"/>
          <K_45 tt:value-ref="INNER_STR_52.K_45"/>
          <K_46 tt:value-ref="INNER_STR_52.K_46"/>
          <K_47 tt:value-ref="K_47"/>
          <K_48 tt:value-ref="K_48"/>
          <K_49 tt:value-ref="K_49"/>
          <K_50 tt:value-ref="K_50"/>
        </ZAKUPWIERSZ>
      </tt:loop>
      <ZAKUPCTRL>
        <LICZBAWIERSZYZAKUPOW tt:value-ref=".VAT_DATA.JPK.ZAKUPCTRL.LICZBAWIERSZYZAKUPOW"/>
        <PODATEKNALICZONY tt:value-ref=".VAT_DATA.JPK.ZAKUPCTRL.PODATEKNALICZONY"/>
      </ZAKUPCTRL>
    </JPK>
  </tt:template>
</tt:transform>

目前,对于我们提到名称空间前缀“etd”的所有元素,都会为它们打印链接(突出显示为绿色)。 输出XML文件如下所示: enter image description here

我想要输出如下所示: enter image description here

我不想为所有元素打印链接,而只想打印一次 - 在标题(元素“JPK”中,突出显示为绿色),就像默认名称空间一样。

你能否给我提供宝贵的意见,以纠正这个问题?

问候。


I am very new to XSLT and facing an issue.

Please find my code of transformation created through transaction code XSLT_TOOL:

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">

  <tt:root name="ROOT" type="?"/>
  <tt:root name="VAT_DATA" type="ddic:ZZCVAT_DECLARATION_MAIN"/>
  <tt:template>
    <JPK xmlns="http://jpk.mf.gov.pl/wzor/2016/03/09/03094/"
         xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/">
      <NAGLOWEK>
        <KODFORMULARZA kodSystemowy="JPK_VAT (2)" tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.KODFORMULARZA" wersjaSchemy="1-0"/>
        <WARIANTFORMULARZA tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.WARIANTFORMULARZA"/>
        <CELZLOZENIA tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.CELZLOZENIA"/>
        <DATAWYTWORZENIAJPK tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATAWYTWORZENIAJPK"/>
        <DATAOD tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATAOD"/>
        <DATADO tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DATADO"/>
        <DOMYSLNYKODWALUTY tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.DOMYSLNYKODWALUTY"/>
        <KODURZEDU tt:value-ref=".VAT_DATA.JPK.NAGLOWEK.KODURZEDU"/>
      </NAGLOWEK>
      <PODMIOT1>
        <IDENTYFIKATORPODMIOTU>
          <etd:NIP tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.NIP"/>
          <etd:PELNANAZWA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.PELNANAZWA"/>
          <etd:REGON tt:value-ref=".VAT_DATA.JPK.PODMIOT1.IDENTYFIKATORPODMIOTU.REGON"/>
        </IDENTYFIKATORPODMIOTU>
        <ADRESPODMIOTU>
          <etd:KODKRAJU tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.KODKRAJU"/>
          <etd:WOJEWODZTWO tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.WOJEWODZTWO"/>
          <etd:POWIAT tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.POWIAT"/>
          <etd:GMINA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.GMINA"/>
          <etd:ULICA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.ULICA"/>
          <etd:NRDOMU tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.NRDOMU"/>
          <etd:MIEJSCOWOSC tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.MIEJSCOWOSC"/>
          <etd:KODPOCZTOWY tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.KODPOCZTOWY"/>
          <etd:POCZTA tt:value-ref=".VAT_DATA.JPK.PODMIOT1.ADRESPODMIOTU.POCZTA"/>
        </ADRESPODMIOTU>
      </PODMIOT1>
      <tt:loop ref=".VAT_DATA.JPK.SPRZEDAZWIERSZ">
        <SPRZEDAZWIERSZ typ="G">
          <LPSPRZEDAZY tt:value-ref="LPSPRZEDAZY"/>
          <NRKONTRAHENTA tt:value-ref="NRKONTRAHENTA"/>
          <NAZWAKONTRAHENTA tt:value-ref="NAZWAKONTRAHENTA"/>
          <ADRESKONTRAHENTA tt:value-ref="ADRESKONTRAHENTA"/>
          <DOWODSPRZEDAZY tt:value-ref="DOWODSPRZEDAZY"/>
          <DATAWYSTAWIENIA tt:value-ref="DATAWYSTAWIENIA"/>
          <DATASPRZEDAZY tt:value-ref="DATASPRZEDAZY"/>
          <K_10 tt:value-ref="K_10"/>
          <K_11 tt:value-ref="K_11"/>
          <K_12 tt:value-ref="K_12"/>
          <K_13 tt:value-ref="K_13"/>
          <K_14 tt:value-ref="K_14"/>
          <K_15 tt:value-ref="INNER_STR_31.K_15"/>
          <K_16 tt:value-ref="INNER_STR_31.K_16"/>
          <K_17 tt:value-ref="INNER_STR_32.K_17"/>
          <K_18 tt:value-ref="INNER_STR_32.K_18"/>
          <K_19 tt:value-ref="INNER_STR_33.K_19"/>
          <K_20 tt:value-ref="INNER_STR_33.K_20"/>
          <K_21 tt:value-ref="K_21"/>
          <K_22 tt:value-ref="K_22"/>
          <K_23 tt:value-ref="INNER_STR_34.K_23"/>
          <K_24 tt:value-ref="INNER_STR_34.K_24"/>
          <K_25 tt:value-ref="INNER_STR_35.K_25"/>
          <K_26 tt:value-ref="INNER_STR_35.K_26"/>
          <K_27 tt:value-ref="INNER_STR_36.K_27"/>
          <K_28 tt:value-ref="INNER_STR_36.K_28"/>
          <K_29 tt:value-ref="INNER_STR_37.K_29"/>
          <K_30 tt:value-ref="INNER_STR_37.K_30"/>
          <K_31 tt:value-ref="K_31"/>
          <K_32 tt:value-ref="INNER_STR_38.K_32"/>
          <K_33 tt:value-ref="INNER_STR_38.K_33"/>
          <K_34 tt:value-ref="INNER_STR_39.K_34"/>
          <K_35 tt:value-ref="INNER_STR_39.K_35"/>
          <K_36 tt:value-ref="K_36"/>
          <K_38 tt:value-ref="K_38"/>
          <K_39 tt:value-ref="K_39"/>
        </SPRZEDAZWIERSZ>
      </tt:loop>
      <SPRZEDAZCTRL>
        <LICZBAWIERSZYSPRZEDAZY tt:value-ref=".VAT_DATA.JPK.SPRZEDAZCTRL.LICZBAWIERSZYSPRZEDAZY"/>
        <PODATEKNALEZNY tt:value-ref=".VAT_DATA.JPK.SPRZEDAZCTRL.PODATEKNALEZNY"/>
      </SPRZEDAZCTRL>
      <tt:loop ref=".VAT_DATA.JPK.ZAKUPWIERSZ">
        <ZAKUPWIERSZ typ="G">
          <LPZAKUPU tt:value-ref="LPZAKUPU"/>
          <NRDOSTAWCY tt:value-ref="NRDOSTAWCY"/>
          <NAZWADOSTAWCY tt:value-ref="NAZWADOSTAWCY"/>
          <ADRESDOSTAWCY tt:value-ref="ADRESDOSTAWCY"/>
          <DOWODZAKUPU tt:value-ref="DOWODZAKUPU"/>
          <DATAZAKUPU tt:value-ref="DATAZAKUPU"/>
          <DATAWPLYWU tt:value-ref="DATAWPLYWU"/>
          <K_43 tt:value-ref="INNER_STR_51.K_43"/>
          <K_44 tt:value-ref="INNER_STR_51.K_44"/>
          <K_45 tt:value-ref="INNER_STR_52.K_45"/>
          <K_46 tt:value-ref="INNER_STR_52.K_46"/>
          <K_47 tt:value-ref="K_47"/>
          <K_48 tt:value-ref="K_48"/>
          <K_49 tt:value-ref="K_49"/>
          <K_50 tt:value-ref="K_50"/>
        </ZAKUPWIERSZ>
      </tt:loop>
      <ZAKUPCTRL>
        <LICZBAWIERSZYZAKUPOW tt:value-ref=".VAT_DATA.JPK.ZAKUPCTRL.LICZBAWIERSZYZAKUPOW"/>
        <PODATEKNALICZONY tt:value-ref=".VAT_DATA.JPK.ZAKUPCTRL.PODATEKNALICZONY"/>
      </ZAKUPCTRL>
    </JPK>
  </tt:template>
</tt:transform>

Currently, for all elements where we have mentioned namespace prefix "etd", link is printed for them (highlighted green). Output XML file looks like: enter image description here

I want output to look like: enter image description here

Instead of printing link for all elements, I want it to print only once - at header (in element "JPK", highlighted green), like the default namespace.

Could you please provide me your valuable inputs to correct the issue?

Regards.


原文:https://stackoverflow.com/questions/43585383
更新时间:2023-08-15 15:08

最满意答案

你可以尝试这样的事情,

df = df.rdd.zipWithIndex().map(lambda x: [x[1]] + [y for y in x[0]]).toDF(['Ident']+df.columns)

这将为您提供第一列作为您的标识符,其具有从0到N-1的连续值,其中N是以df为单位的记录总数。


You could try something like this,

df = df.rdd.zipWithIndex().map(lambda x: [x[1]] + [y for y in x[0]]).toDF(['Ident']+df.columns)

This will give you first column as your identifier which will have consecutive values starting from 0 to N-1, where N is total number of records in df.

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。