XSLT从文件比不同的WebService(XSLT From File Different tha

2019-10-18 12:04发布

我做了一些XSLT - 在一个情况下,我有一个序列化到一个XML文件,我的XSLT会拉这样的服务。 在另一种情况下,我有一个web服务序列相同的对象。 输出是,据我所知道的,相同的。 但对于XML文件中的XQuery / XPath不为XML REST服务工作。

例如看这幅图,显示我加载两种来源的文件和评估每个相同的路径。

如何在这些不同? 为什么他们不同样地进行评价?

更新

XML从文件:

  <?xml version="1.0" encoding="utf-8"?>
<ArrayOfBusinessGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <BusinessGroup>
    <ListofSkills>
      <SkillClass>
        <SkillName>DTE</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
      <SkillClass>
        <SkillName>FIN</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
      <SkillClass>
        <SkillName>DPS</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
      <SkillClass>
        <SkillName>PPD Apps</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
      <SkillClass>
        <SkillName>FHD New</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
      <SkillClass>
        <SkillName>FHD Existing</SkillName>
        <InteractionCount>0</InteractionCount>
      </SkillClass>
    </ListofSkills>
    <GroupName>Apps Chat</GroupName>
  </BusinessGroup>

XML从WebService:

    This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ArrayOfBusinessGroup xmlns="http://schemas.datacontract.org/2004/07/ININ.WCF.DeloitteSIC.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<BusinessGroup>
<GroupName>Apps Chat</GroupName>
<ListofSkills>
<SkillClass>
<InteractionCount>2</InteractionCount>
<SkillName>DTE</SkillName>
</SkillClass>
<SkillClass>
<InteractionCount>0</InteractionCount>
<SkillName>FIN</SkillName>
</SkillClass>
<SkillClass>
<InteractionCount>0</InteractionCount>
<SkillName>DPS</SkillName>
</SkillClass>
<SkillClass>
<InteractionCount>0</InteractionCount>
<SkillName>PPD Apps</SkillName>
</SkillClass>
<SkillClass>
<InteractionCount>0</InteractionCount>
<SkillName>FHD New</SkillName>
</SkillClass>
<SkillClass>
<InteractionCount>0</InteractionCount>
<SkillName>FHD Existing</SkillName>
</SkillClass>
</ListofSkills>
</BusinessGroup>

Answer 1:

这里的问题是,XML从WebService返回使用的命名空间,但你的XPath都没有。 要正确使用命名空间,你会:

声明在您的XSLT顶部的命名空间(在xsl:stylesheet标记):

xmlns:dc="http://schemas.datacontract.org/2004/07/ININ.WCF.DeloitteSIC.Models"

然后,而不是仅仅通过它们的名字引用的元素,你将前缀声明的前缀名称:

$skillFile/dc:ArrayOfBusinessGroup/*[starts-with(dc:GroupName, $groupName)]


文章来源: XSLT From File Different than WebService
标签: xslt