我正在使用XML结构,应该对其进行修改以对其执行某些操作。
这是要从以下位置修改的XML结构: -
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Header>
<OrgId>20000000</OrgId>
</Header>
<Parameters>
<Parameter>
<value>I21</value>
<name>ELEMENT_TYPE</name>
</Parameter>
</Parameters>
<ResponseListener>
<URI>https://..................../</URI>
<Method>POST</Method>
</ResponseListener>
<System>USER</System>
<ElementId>Tets001</ElementId>
<ElementDesc>
<Id>d2U201</Id>
<Date>2018-02-20T00:00:00</Date>
<SequenceNumber>1</SequenceNumber>
<ElementId>1</ElementId>
<Action>
<TransactionName>ABC</TransactionName>
<ElementSpecification>
<Name>EQUIPMENT</Name>
<Version>1.22</Version>
<Parameters>
<Parameter>
<value>270</value>
<name>MATERIAL_ID_1</name>
</Parameter>
<Parameter>
<value>203</value>
<name>QUANTITY_1</name>
</Parameter>
<Parameter>
<value>ZYXEL</value>
<name>MATERIAL_NAME_1</name>
</Parameter>
<Parameter>
<value>VK40</value>
<name>PLANT_ID</name>
</Parameter>
</Parameters>
</ElementSpecification>
</Action>
</ElementDesc>
</root>
以下结构: -
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Header>
<OrgId>20000000</OrgId>
</Header>
<Parameters>
<Parameter>
<value>I21</value>
<name>ELEMENT_TYPE</name>
</Parameter>
</Parameters>
<ResponseListener>
<URI>https://..................../</URI>
<Method>POST</Method>
</ResponseListener>
<System>USER</System>
<ElementId>Tets001</ElementId>
<ElementDesc>
<Id>d2U201</Id>
<Date>2018-02-20T00:00:00</Date>
<SequenceNumber>1</SequenceNumber>
<ElementId>1</ElementId>
<Action>
<TransactionName>ABC</TransactionName>
<ElementSpecification>
<Name>EQUIPMENT</Name>
<Version>1.22</Version>
<Parameter>
<value>270</value>
<name>MATERIAL_ID_1</name>
</Parameter>
<Parameter>
<value>203</value>
<name>QUANTITY_1</name>
</Parameter>
<Parameter>
<value>ZYXEL</value>
<name>MATERIAL_NAME_1</name>
</Parameter>
<Parameter>
<value>VK40</value>
<name>PLANT_ID</name>
</Parameter>
</ElementSpecification>
</Action>
</ElementDesc>
</root>
我应该用哪个xslt来实现这个目标?我尝试过使用xslt以下但是没有达到预期效果。
XSLT如下: -
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:m0="http://services.samples" version="2.0" exclude-result-prefixes="m0 fn">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="//ProductSpecification/Parameters">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
我认为不是
<xsl:template match="//ProductSpecification/Parameters">
<xsl:value-of select="."/>
</xsl:template>
你想要
<xsl:template match="ProductSpecification/Parameters">
<xsl:apply-templates/>
</xsl:template>