通过xslt访问XML文件,xslt比xslt低两级
properties.xml->web inf/classes的位置 XSLT->web inf/classes/XSLT/req/Request.XSLT的位置 Properties.xml通过xslt访问XML文件,xslt比xslt低两级,xml,xslt,Xml,Xslt,properties.xml->web inf/classes的位置 XSLT->web inf/classes/XSLT/req/Request.XSLT的位置 Properties.xml <?xml version="1.0" encoding="UTF-8"?> <Properties> <UserId>abc</UserId> <Password>password</Passw
<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<UserId>abc</UserId>
<Password>password</Password>
</Properties>
abc
密码
XSLT文件:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:abc="urn:microsoft-dynamics-
schemas/codeunit/abc_WebService"
xmlns:any="http://schemas.microsoft.com/BizTalk/2003/Any">
<soapenv:Header/>
<soapenv:Body>
<abc:ImportabcXML>
<abc:requestXML>
<xsl:copy-of select="."/>
</abc:requestXML>
<abc:userId><xsl:value-of select="document('/Properties.xml')/Properties/UserId"/></abc:userId>
<abc:password><xsl:value-of select="document('/Properties.xml')/Properties/Password"/></abc:password>
</abc:ImportabcXML>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
我无法访问输出中XML属性文件中的userid和password字段,我只能获得:
Current output :
....</abc:userId></abc:password>....
Expected output :
....<abc:userId>abc</abc:userId><abc:password>password</abc:password>...
电流输出:
........
预期产出:
…abcpassword。。。
为了能够访问XSLT文件下两级文件夹中Properties.xml的属性,我必须对document标记进行哪些更改?
我在一个链接中读到的是,XSLT使用的文件的位置应该和XSLT的文件夹级别相同。那么,如何访问位于XSL文件夹下一级的文件呢
编辑:如Michael所示,将一级更改为两级
如何访问位于XSL文件夹下一级的文件
如果样式表位于:
web-inf/classes/xslt/req/Request.xslt
而属性
文件位于:
web-inf/classes/Properties.xml
然后,它不是“低于一级”,而是高于两级-并且应可通过以下方式访问:
document('../../Properties.xml')
请注意,XML区分大小写:
properties.XML
与properties.XML
谢谢Michael的回答。但我还是得到了理智的输出。。。。。。。代码中是否有其他问题阻止获取输出:abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword.abcpassword。