创建xslt时,如何根据子标记获取父标记的名称?

时间:2019-05-02 01:40:13

标签: xml xslt

我有一个XML,格式如下:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ser="http://com/verizon/pc/coa/service"
    xmlns:java="java:com.verizon.pc.coa.service">
    <soapenv:Body>
        <XYZ>
            <SC>0</SC>
            <StDs>Successfully placed the request</StDs>
            <EC>SUCCESS</EC>

            <abc>
                <cd>0</cd>
                <ef>1</ef>
                <xpath>test</xpath>
            </abc>
            <pqr>
                <cd>08302018</cd>
                <ef>09212018</ef>
                <xpath>/com.verizon.prism.dataretrieval.model.ws.PcData[1]/dataOrderLevel[1]/lecDesireDueDate[1]    /text()[1]</xpath>
            </pqr>

        </XYZ>
    </soapenv:Body>
</soapenv:Envelope>

我需要编写一个xslt,它仅在子值为<cd><ef>时才采用具有父值的标签。也就是说,响应应采用以下格式:

<?xml version="1.0" encoding="UTF-8"?>
<XYZ>
   <XYZ>
      <name>abc</name>
      <cd>0</cd>
      <ef>1</ef>
      <xpath>test</xpath>
   </XYZ>
   <XYZ>
      <name>pqr</name>
      <cd>PQ</cd>
      <ef>BLDGCLLI</ef>
      <xpath />
   </XYZ>
</XYZ>

有人可以帮我吗?我是写xslt的新手。

0 个答案:

没有答案