0

不要な属性を xml ファイルから削除したいと考えています。xslで削除できることはわかっています。しかし、私はそれを行う方法がわかりません。インターネットで検索しても、期待した結果が得られません。

これが現在の私のxml出力です

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<rsm:Invoice xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:rsm="http://www.ita.org/" 
xmlns:ccts="urn:un:unece:uncefact:documentation:standard:CoreComponentsTechnicalSpecification:2" 
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:2" 
xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:2" 
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.ita.org/ Invoice_20.xsd">
  <rsm:HeaderExchangedDocument>
    <ram:ID xmlns:ram="http://www.ita.org/">103004</ram:ID>
    <ram:TypeCode xmlns:ram="http://www.ita.org/">Invoice</ram:TypeCode>
    <ram:IssueDateTime xmlns:ram="http://www.ita.org/">2014-01-01</ram:IssueDateTime>
    <ram:CopyIndicator xmlns:ram="http://www.ita.org/">Original</ram:CopyIndicator>
    <ram:CustomsID xmlns:ram="http://www.ita.org/" />
    <ram:HeaderInformation xmlns:ram="http://www.ita.org/" />
    <ram:SummaryInformation xmlns:ram="http://www.ita.org/" />
  </rsm:HeaderExchangedDocument>
  <rsm:SpecifiedLogisticsConsignment>
    <ram:IncludedSupplyChainConsignment xmlns:ram="http://www.ita.org/">
      <ram:BorderCrossingLogisticsTransportMovement>
        <ram:ModeCode>1</ram:ModeCode>
        <ram:Mode>Sea</ram:Mode>
        <ram:ID />
      </ram:BorderCrossingLogisticsTransportMovement>
    </ram:IncludedSupplyChainConsignment>
  </rsm:SpecifiedLogisticsConsignment>
</rsm:Invoice>

以下のフォーマットを取得したい

<?xml version="1.0" encoding="UTF-8"?>
<rsm:Invoice xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:rsm="http://www.ita.org/" 
xmlns:ccts="urn:un:unece:uncefact:documentation:standard:TechnicalSpecification:2" 
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:2" 
xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:2" 
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.ita.org/ Invoice_20.xsd">
  <rsm:HeaderExchangedDocument>
    <ram:ID>103004</ram:ID>
    <ram:TypeCode>Invoice</ram:TypeCode>
    <ram:IssueDateTime>2014-01-01</ram:IssueDateTime>
    <ram:CopyIndicator>Original</ram:CopyIndicator>
    <ram:CustomsID/>
    <ram:HeaderInformation/>
    <ram:SummaryInformation/>
  </rsm:HeaderExchangedDocument>
  <rsm:SpecifiedLogisticsConsignment>
    <ram:IncludedSupplyChainConsignment>
      <ram:BorderCrossingLogisticsTransportMovement>
        <ram:ModeCode>1</ram:ModeCode>
        <ram:Mode>Sea</ram:Mode>
        <ram:ID />
      </ram:BorderCrossingLogisticsTransportMovement>
    </ram:IncludedSupplyChainConsignment>
  </rsm:SpecifiedLogisticsConsignment>
</rsm:Invoice>

xsltでどうすればよいですか?

4

1 に答える 1

0

さて、ram:ID は名前空間「http://www.ita.org/」の要素として出力されており、それを名前空間「urn:un:unece:uncefact:data:standard:」の要素として出力したいとします。 ReusableAggregateBusinessInformationEntity:2"

そのため、生成するコードが何であれ、それを間違った名前空間に配置しているため、修正する必要があります。コードを表示していないため、どこが間違っているかはわかりません。

答えをグーグルで検索する際の問題は、使用している言語の概念を理解していないと、間違ったことをグーグルで検索してしまうことです。問題は属性を削除することではなく、要素名を修正することです。しばらく Google のこともコーディングのことも忘れて、代わりに XSLT に関する優れた本を読んでください。

于 2012-11-02T13:24:26.110 に答える