我已经编写代码来检查merge1.xml中的Document_Name__c是否存在于merge2.xml中的Document_Name__c中,然后我只需要根据预期输出从merge1中获取所有数据。 XSL:在XSL中检查文件名是否存在于另一个文件中不起作用?
<?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="xs" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:param name="XMLMerge2" select="document('merge2.xml')"/>
<xsl:template match="objects">
<objects>
<xsl:for-each select="Alert__c">
<xsl:variable name="Email_from_merge1" select="Document_Name__c"/>
<xsl:if
test="
exists($XMLMerge2/objects/Data__c[Document_Name__c
!= $Email_from_merge1])">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:if>
</xsl:for-each>
</objects>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
输入:Merge1.xml ---在XSL,我从这里使用。
<objects>
<Alert__c>
<Document_Name__c>aaa.pdf</Document_Name__c>
<CreatedDate>2017-06-19T10:55:56.000Z</CreatedDate>
</Alert__c>
<Alert__c>
<Document_Name__c>file 1.pdf</Document_Name__c>
<CreatedDate>2017-06-15T10:55:56.000Z</CreatedDate>
</Alert__c>
<Alert__c>
<Document_Name__c>VICS_810_004010_US.pdf</Document_Name__c>
<CreatedDate>2017-06-09T06:24:56.000Z</CreatedDate>
</Alert__c>
<Alert__c>
<Document_Name__c>aa.csv</Document_Name__c>
<CreatedDate>2017-06-14T14:26:49.000Z</CreatedDate>
</Alert__c>
</objects>
Merge2.xml ---在XSL中,我从这里使用。
<?xml version="1.0" encoding="UTF-8"?>
<objects>
<Data__c>
<Id>a0J3900000KNEqTEAX</Id>
<Document_Name__c>VICS_810_004010_US.pdf</Document_Name__c>
</Data__c>
<Data__c>
<Id>a0J3900000KNEqVEAX</Id>
<Document_Name__c>file 1.pdf</Document_Name__c>
</Data__c>
</objects>
预期输出:
<objects>
<Alert__c>
<Document_Name__c>aaa.pdf</Document_Name__c>
<CreatedDate>2017-06-19T10:55:56.000Z</CreatedDate>
</Alert__c>
<Alert__c>
<Document_Name__c>aa.csv</Document_Name__c>
<CreatedDate>2017-06-14T14:26:49.000Z</CreatedDate>
</Alert__c>
</objects>
不要告诉我们这是行不通的,告诉我们如何失败。你得到什么输出? –
我修正了merge1.xml的格式和期望的输出,但是试图在merge2.xml上做同样的事情表明该文件不是格式良好的XML。因为你提供的数据显然不正确,所以不可能帮助你。 –
现在数据是正确的 – NL1