Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 应用XSLT转换时,文本值显示不正确_Xml_Xslt - Fatal编程技术网

Xml 应用XSLT转换时,文本值显示不正确

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:

<?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>