首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSLT删除多个XML节点

使用XSLT删除多个XML节点
EN

Stack Overflow用户
提问于 2019-05-09 09:28:18
回答 1查看 69关注 0票数 0

我试图从XML文件中删除两个根节点,但我似乎做不到。我试着移除第一部分,但没有结果。

我希望这个文件是这样的:

代码语言:javascript
复制
 [{                
    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
},{

    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
}]

但它即将到来:

代码语言:javascript
复制
 {        
    "ns1:ZZMRP_Parts" : { "Part" :[{

    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
},{

    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
}] }}

我需要的是删除的部分"ns1:ZZMRP_Parts" : { "Part" :[{

注释中的输入示例

代码语言:javascript
复制
<ns1:DDMRP_Parts xmlns:ns1="urn:za.xxxxxxxx.com:supplychain:3rdp:transdata">
  <Part>
    <PartNumber>000096</PartNumber>
    <Location>A000</Location>
    <Description>TEST OF RAMIS</Description>
    <UnitOfMeasure>EA</UnitOfMeasure>
    <PartType>1</PartType>
    <FixedLeadTime>1</FixedLeadTime>
    <MaterialType>Filling &amp; Mixing Eq</MaterialType>
  </Part>
  <Part>
    <PartNumber>000096</PartNumber>
    <Location>A000</Location>
    <Description>TEST OF RAMIS</Description>
    <UnitOfMeasure>EA</UnitOfMeasure>
    <PartType>1</PartType>
    <FixedLeadTime>1</FixedLeadTime>
    <MaterialType>Filling &amp; Mixing Eq</MaterialType>
  </Part>
</ns1:DDMRP_Parts>
EN

回答 1

Stack Overflow用户

发布于 2019-05-09 12:46:43

XSLT3可以处理JSON,使用XPath 3.1,您可以轻松地选择您感兴趣的更复杂的输入JSON的部分:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="#all"
    version="3.0">

    <xsl:output method="json" indent="yes"/>

    <xsl:template match="json">
        <xsl:sequence select="parse-json(.)('ns1:ZZMRP_Parts')?Part"/>
    </xsl:template>

</xsl:stylesheet>

假设输入如下

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<json><![CDATA[
{        
    "ns1:ZZMRP_Parts" : { "Part" :[{

    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
},{

    "PartNumber" : "000096",
    "Location" : "A000",
    "Description" : "TEST OF RAMIS",
    "UnitOfMeasure" : "EA",
    "PartType" : "1",
    "FixedLeadTime" : "1",
    "MaterialType" : "Filling & Mixing Eq"
}] }}
]]></json>

https://xsltfiddle.liberty-development.net/bFN1y9B

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56056344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档