我知道这是超级菜鸟,但我只是不明白为什么我的代码不起作用。这是 XML 片段:
<root>
<cookies>
<lastviewedentityname>Category</lastviewedentityname>
<lastviewedentityinstanceid>72</lastviewedentityinstanceid>
<lastviewedentityinstancename>Fall Florals</lastviewedentityinstancename>
some random text bla bla
</cookies>
<QueryString>
<categoryid>34</categoryid>
</QueryString>
<!-- other nodes -->
</root>
这是 XSL 片段:
<?xml version="1.0" standalone="yes" ?>
<package version="2.1" displayname="Categories" debug="false" includeentityhelper="true">
<PackageTransform>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ise="urn:ise" exclude-result-prefixes="ise">
<xsl:output method="html" omit-xml-declaration="yes"/>
<!-- other code -->
<xsl:value-of select="/root/cookies/lastviewedentityinstanceid"/>
<!-- other code -->
</xsl:stylesheet>
</PackageTransform>
</package>
我正在寻找的结果是
72
但似乎我得到了空字符串或其他东西。看看这个:http ://www.w3schools.com/xsl/xsl_value_of.asp ,我假设我的代码没问题。此外,确认这一点是此代码:
<xsl:value-of select="/root/QueryString/categoryid"/>
给我正确的价值
34
然后在我试图寻找答案的过程中,我找到了这个网站: http: //www.mizar.dk/XPath/Default.aspx我注意到当我在这里尝试时,它突出显示了元素,而不是其中的值: http: //screencast.com/t/NXuNiCHbEd0T
这里有更多信息:我正在开发的系统称为 Interprise Suite Ecommerce(这就是“ise”的来源)。这是他们的网络软件,它与称为 Interprise Suite 的 ERP 软件集成在一起。ISE 是前段时间改编自 AspDotNetStoreFront 的电子商务软件。我将尝试解释我所拥有的有限知识。
正在加载的页面是产品或类别页面。我正在处理的这个特定文件提供了侧边栏产品导航菜单的布局。该文件称为 rev.categories.xml.config。此文件包含 XSLT 代码。它正在转换的原始 XML 数据,我不知道它来自哪里,也无权访问它。借助 Dimitre 在上一个问题中的帮助,我能够在网页中重现 XML 数据,这样我就可以了解更多。在其输出中,顶级节点是
<root>
加载此 XML 包的文件称为 template.ascx。它是一个模板或“主”文件。在 ASPDNSF 中,您可以使用这些称为“令牌”的东西将内容加载到页面中,而这个令牌就是调用 rev.categories.xml.config 来激活并执行其操作的东西。令牌如下所示:
(!XmlPackage Name="rev.categories"!)
我不确定令牌是如何工作的。我的想法是它不相关,因为除了这一行代码之外,此文件中的其他所有内容都在工作。
请原谅我缺乏知识、经验和适当的语言。
编辑:这是 rev.categories.xml.confg 完整代码的链接。 http://jsfiddle.net/v5cNM/