0
xslの助けを借りてxml内の子要素、ノード、および親要素を削除する方法。xslの助けを借りてxml要素を削除するには?
ここはmy xml codeです。
<?xml version="1.0" encoding="UTF-8"?>
<Checkpax xmlns="http://xml.api.com/test">
<customerLevel>
<surname>MUKHERJEE</surname>
<type>A</type>
<gender>M</gender>
<otherPaxDetails>
<givenName>JOY</givenName>
<title>MR</title>
<age>11</age>
</otherPaxDetails>
<otherPaxDetails>
<title>MR</title>
</otherPaxDetails>
<staffDetails>
<staffInfo/>
<staffCategoryInfo>
<attributeDetails>
<attributeType>NA</attributeType>
</attributeDetails>
</staffCategoryInfo>
</staffDetails>
<productLevel>
<legLevel>
<legLevelIndicator>
<statusDetails>
<indicator>abc</indicator>
<action>1</action>
</statusDetails>
</legLevelIndicator>
</legLevel>
</productLevel>
<CustomerLevel>
<legLevel>
<legLevelIndicator>
<statusDetails>
<indicator>cde</indicator>
<action>1</action>
</statusDetails>
</legLevelIndicator>
</legLevel>
</CustomerLevel>
</customerLevel>
</Checkpax>
期待される出力のxml:
<Checkpax xmlns="http://xml.api.com/test">
<paxDetails>
<surname>MUKHERJEE</surname>
<gender>M</gender>
</paxDetails>
<otherPaxDetails>
<title>MR</title>
<age>11</age>
</otherPaxDetails>
<otherPaxDetails>
<title>MR</title>
</otherPaxDetails>
<staffDetails>
<staffCategoryInfo>
<attributeDetails>
<attributeType>NA</attributeType>
</attributeDetails>
</staffCategoryInfo>
</staffDetails>
<legLevelIndicator>
<statusDetails>
<indicator>abc</indicator>
</statusDetails>
</legLevelIndicator>
<CustomerLevel>
<legLevel>
<legLevelIndicator>
<indicator>cde</indicator>
<action>1</action>
</legLevelIndicator>
</legLevel>
</CustomerLevel>
</Checkpax>
私は私の端から試してみましたXSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://xml.api.com/test"
xmlns:ns0="http://xml.api.com/test"
exclude-result-prefixes="ns0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Identity transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- Apply all child nodes; don't copy the element itself -->
<xsl:template match="ns0:customerLevel| ns0:customerDetails| ns0:paxDetails">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
は親切に期待されるのxml output.iを取得するためのXSLスタイルシートが知らない示唆します要素を削除する方法をremianing。また、これはxslでxmlの要素の削除を探している多くの人々のために多くを助けるでしょう。
<xsl:template match="ns0:productLevel | ns0:legLevel">
<xsl:apply-templates/>
</xsl:template>
これはproductLevel
とlegLevel
ラッパーを削除し、staffDetails
の兄弟であることをlegLevelIndicator
を高めます:
くれotherPaxDetails要素の下にタグを削除する方法をいくつかの提案を与える@ michael.hor257k – sathya
私のポストに編集を参照してください@vidya。 –
はいこれは役に立ちます。私のために働く。私はそれをマークします。@ michael.hor257k – sathya