我想从我的xml文件中删除unnessary属性。我知道我们可以通过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?
答案 0 :(得分:0)
嗯,ram:ID正在作为命名空间“http://www.ita.org/”中的元素输出,并且您希望它作为命名空间中的元素“urn:un:unece:uncefact:data :标准:ReusableAggregateBusinessInformationEntity:2"
因此,无论生成什么代码,都会将其置于错误的命名空间中并需要修复;你没有显示你的代码,所以我们无法告诉你哪里错了。
谷歌搜索答案的麻烦是,如果你不理解你正在使用的语言的概念,你会谷歌错误的东西。您的问题不是删除属性,而是更正元素名称。忘了谷歌一段时间,忘了编码,而是读一本关于XSLT的好书。