Xml 应用XSLT转换时,文本值显示不正确
给定以下Xml:Xml 应用XSLT转换时,文本值显示不正确,xml,xslt,Xml,Xslt,给定以下Xml: <?xml version="1.0" encoding="UTF-8"?> <ROOT> <MessageHeader> <MessageId>b4794b26-f7fc-438d-bbc2-b30a4fbf5cf9</MessageId> <CorrelationId>04ce5131-68d9-498a-9d19-02b2a5295537</CorrelationId> <Messa
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<MessageHeader>
<MessageId>b4794b26-f7fc-438d-bbc2-b30a4fbf5cf9</MessageId>
<CorrelationId>04ce5131-68d9-498a-9d19-02b2a5295537</CorrelationId>
<MessageDateTime>2017-06-06T14:14:58</MessageDateTime>
<BatchId>2a55cd19-ee46-4b59-a94b-2814665aaa82</BatchId>
<MessageSubmissionTypeCode>SomeInfoToGoHere</MessageSubmissionTypeCode>
</MessageHeader>
<Trns>
<RemitKey>0100001002961</RemitKey>
<DATE>01/03/09</DATE>
<ClientNo>00031824</ClientNo>
<POLNOI>00031824*001</POLNOI>
<CurrPolicyStatus>Active</CurrPolicyStatus>
<PolicyProdType>Something</PolicyProdType>
<ClientNameType>Individual</ClientNameType>
<ClientName/>
<IdNumberType>CompanyRegistration</IdNumberType>
<IdNumber/>
<Insurer>Some Insurer</Insurer>
<InsurerNo>00061</InsurerNo>
<AgentCode>0001</AgentCode>
<AgentName>Some Agent</AgentName>
</Trns>
</ROOT>
但是,
标记的文本值插入到
节点的正下方:
<TestProcess>
b4794b26-f7fc-438d-bbc2-b30a4fbf5cf9
04ce5131-68d9-498a-9d19-02b2a5295537
2017-06-06T14:14:58
2a55cd19-ee46-4b59-a94b-2814665aaa82
SomeInfoToGoHere
<Process>
.
.
.
b4794b26-f7fc-438d-bbc2-b30a4fbf5cf9
04ce5131-68d9-498a-9d19-02b2a5295537
2017-06-06T14:14:58
2a55cd19-ee46-4b59-a94b-2814665aaa82
这里有什么
.
.
.
我想从渲染中完全排除
数据。请问我错过了什么 首先,我将用
替换您的
对于您的问题,您有两种可能的选择:
选项1
您可以为MessageHeader
创建一个空模板。因此,只需将这一行添加到XSLT文件:
<xsl:template match="MessageHeader"/>
首先,我将用
替换您的
对于您的问题,您有两种可能的选择:
选项1
您可以为MessageHeader
创建一个空模板。因此,只需将这一行添加到XSLT文件:
<xsl:template match="MessageHeader"/>
更改此部分:
<xsl:template match="/">
<TestProcess>
<xsl:apply-templates/>
</TestProcess>
</xsl:template>
使用:
同样地,对于Trans
的其他元素,更改此部分:
<xsl:template match="/">
<TestProcess>
<xsl:apply-templates/>
</TestProcess>
</xsl:template>
***Run this code***
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TestProcess>
<xsl:call-template name="ajeet"/>
</TestProcess>
</xsl:template>
<xsl:template name="ajeet" match="Trns">
<Process>
<Key><xsl:value-of select=".//RemitKey"/></Key>
<Date>
<Submitted><xsl:value-of select=".//DATE"/></Submitted>
</Date>
<Policy>
<PolicyNumber><xsl:value-of select=".//POLNOI"/></PolicyNumber>
<Type><xsl:value-of select=".//PolicyProdType"/></Type>
</Policy>
<Client>
<Type><xsl:value-of select=".//ClientNameType"/></Type>
<Name><xsl:value-of select=".//ClientName"/></Name>
<Identification>
<Type><xsl:value-of select=".//IdNumberType"/></Type>
<Number><xsl:value-of select=".//IdNumber"/></Number>
</Identification>
</Client>
<Insurer>
<Name><xsl:value-of select=".//Insurer"/></Name>
<Code><xsl:value-of select=".//InsurerNo"/></Code>
</Insurer>
</Process>
</xsl:template>
</xsl:stylesheet>
使用:
同样地,对于Trans
***的其他元素,运行此代码***
***Run this code***
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TestProcess>
<xsl:call-template name="ajeet"/>
</TestProcess>
</xsl:template>
<xsl:template name="ajeet" match="Trns">
<Process>
<Key><xsl:value-of select=".//RemitKey"/></Key>
<Date>
<Submitted><xsl:value-of select=".//DATE"/></Submitted>
</Date>
<Policy>
<PolicyNumber><xsl:value-of select=".//POLNOI"/></PolicyNumber>
<Type><xsl:value-of select=".//PolicyProdType"/></Type>
</Policy>
<Client>
<Type><xsl:value-of select=".//ClientNameType"/></Type>
<Name><xsl:value-of select=".//ClientName"/></Name>
<Identification>
<Type><xsl:value-of select=".//IdNumberType"/></Type>
<Number><xsl:value-of select=".//IdNumber"/></Number>
</Identification>
</Client>
<Insurer>
<Name><xsl:value-of select=".//Insurer"/></Name>
<Code><xsl:value-of select=".//InsurerNo"/></Code>
</Insurer>
</Process>
</xsl:template>
</xsl:stylesheet>
***运行此代码***
您假设输入中只有Trans
(如果是,您可以在主模板中处理它而不必调用命名模板)。您假设输入中只有Trans
(如果是,您可以在主模板中处理它而不必调用命名模板)。
<xsl:value-of select=".//RemitKey"/>
<xsl:value-of select="RemitKey"/>
***Run this code***
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TestProcess>
<xsl:call-template name="ajeet"/>
</TestProcess>
</xsl:template>
<xsl:template name="ajeet" match="Trns">
<Process>
<Key><xsl:value-of select=".//RemitKey"/></Key>
<Date>
<Submitted><xsl:value-of select=".//DATE"/></Submitted>
</Date>
<Policy>
<PolicyNumber><xsl:value-of select=".//POLNOI"/></PolicyNumber>
<Type><xsl:value-of select=".//PolicyProdType"/></Type>
</Policy>
<Client>
<Type><xsl:value-of select=".//ClientNameType"/></Type>
<Name><xsl:value-of select=".//ClientName"/></Name>
<Identification>
<Type><xsl:value-of select=".//IdNumberType"/></Type>
<Number><xsl:value-of select=".//IdNumber"/></Number>
</Identification>
</Client>
<Insurer>
<Name><xsl:value-of select=".//Insurer"/></Name>
<Code><xsl:value-of select=".//InsurerNo"/></Code>
</Insurer>
</Process>
</xsl:template>
</xsl:stylesheet>