我正在使用saxon 9he,eclipse,tomcat 7.我將會解釋代碼。當我運行轉換時,除了InsurerId,我獲得了每個想要的值。如果我將xml更改(調試)到InsurerId2和xsl以獲取InsurerId2的值。我有兩個字段給了我這個麻煩,我曾經有一段時間能夠獲得這個時間,我已經添加了改爲xsl 2.0,從saxon 6改爲添加了當前日期函數。這是非常困惑,請幫助。Xsl沒有找到正確的XPath值
XML
<PersDriver id="001">
<ItemIdInfo>
<InsurerId>001</InsurerId>
</ItemIdInfo>
<GeneralPartyInfo>
<NameInfo>
<PersonName>
<Surname>test</Surname>
<GivenName>test</GivenName>
<OtherGivenName>
</OtherGivenName>
<TitlePrefix>
</TitlePrefix>
<NameSuffix>
</NameSuffix>
</PersonName>
<TaxIdentity>
<TaxIdTypeCd>SSN</TaxIdTypeCd>
<TaxId> 999999999999</TaxId>
</TaxIdentity>
</NameInfo>
</GeneralPartyInfo>
<DriverInfo>
<PersonInfo>
<GenderCd>M</GenderCd>
<BirthDt>1979-08-23</BirthDt>
<MaritalStatusCd>
</MaritalStatusCd>
</PersonInfo>
<DriversLicense>
<LicensedDt>2007-08-23</LicensedDt>
<DriversLicenseNumber>99999999</DriversLicenseNumber>
<StateProvCd>TN</StateProvCd>
</DriversLicense>
</DriverInfo>
<PersDriverInfo>
<DefensiveDriverDt />
<DriverRelationshipToApplicantCd>
</DriverRelationshipToApplicantCd>
<DriverTrainingInd />
<GoodDriverInd />
<GoodStudentCd />
</PersDriverInfo>
</PersDriver>
XSL
<xsl:for-each select="$RsXml/InsuranceSvcRs/com.csc_PolicyOrderCurrentCarrierInqRs/PersDriver">
<driver type_code="DP" id="0">
<prefix>
<xsl:value-of select="GeneralPartyInfo/NameInfo/PersonName/TitlePrefix"/>
</prefix>
<firstname>
<xsl:value-of select="GeneralPartyInfo/NameInfo/PersonName/GivenName"/>
</firstname>
<midname/>
<lastname>
<xsl:value-of select="GeneralPartyInfo/NameInfo/PersonName/Surname"/>
</lastname>
<suffix>
<xsl:value-of select="GeneralPartyInfo/NameInfo/PersonName/NameSuffix"/>
</suffix>
<sex>
<xsl:value-of select="DriverInfo/PersonInfo/GenderCd"/>
</sex>
<dateofbirth>
<xsl:value-of select="DriverInfo/PersonInfo/BirthDt"/>
</dateofbirth>
<ssn>
<xsl:value-of select="GeneralPartyInfo/NameInfo/TaxIdentity/TaxId"/>
</ssn>
<maritalstatus>
<xsl:value-of select="DriverInfo/PersonInfo/MaritalStatusCd"/>
</maritalstatus>
<occupation/>
<homephone/>
<workphone/>
<cellphone/>
<homeemail/>
<workemail/>
<licensestate>
<xsl:value-of select="DriverInfo/DriversLicense/StateProvCd"/>
</licensestate>
<licensenumber>
<xsl:value-of select="DriverInfo/DriversLicense/DriversLicenseNumber"/>
</licensenumber>
<xsl:message>
<TEST>
<xsl:value-of select="ItemIdInfo/InsurerId"/>
</TEST>
</xsl:message>
<xsl:choose>
<xsl:when test="@id=001">
<namedinsured>true</namedinsured>
</xsl:when>
<xsl:otherwise>
<namedinsured>false</namedinsured>
</xsl:otherwise>
</xsl:choose>
<namedinsured2></namedinsured2>
<driver></driver>
<livewithparents/>
<vehicledriven/>
<driveworkschool/>
<keptatcollege/>
<beensuspended/>
<business></business>
<beenarrested/>
<client_id></client_id>
<violations/>
<accidents/>
</driver>
</xsl:for-each>
</xsl:copy>
</xsl:template>
此XML到XSL通過了PARM。你認爲ide或者parm可能會導致這個古怪的問題嗎?謝謝 –
@JustinCox,如果傳入的是XmlDocument對象,則結果必須相同。但是,如果您將XML作爲文本傳遞,那麼這是一個錯誤 - 不應該這樣做。 –
這是一個DOM,Michael告訴我要用XdmNode來改變這個變化。此外,這個應用程序緩存了xsl。我不明白爲什麼當我改變它的元素名稱的時候,看起來像是一個緩存的問題。 –