0

嗨,我有以下代码,我想显示 ProductRevision 中与 Occurrence 中的 instancedRef 匹配的 UserValue。架构是 plmxml ...

<ProductRevision id="id279" name="Intermediate Shaft" accessRefs="#id17" subType="M3HI_MPTRevision" masterRef="#id284" revision="A" source="unset">
<ApplicationRef version="gCVFl6cKY1F1YB" application="Teamcenter" label="Q_VFl6cKY1F1YB"></ApplicationRef>
<UserData id="id280">
<UserValue value="11111" title="m3hi_Order_No"></UserValue></UserData>
<AssociatedForm id="id283" role="IMAN_master_form" formRef="#id281"></AssociatedForm></ProductRevision>

我正在尝试使用以下 XSLT 获取 UserValue 的值

<xsl:variable name="mptRevID" select="substring-after(/plm:PLMXML/plm:ProductView/plm:Occurrence[@id=$mptId]/@instancedRef, '#')"/>
<xsl:variable name="RevTag" select="/plm:PLMXML/plm:ProductRevision[@id=$mptRevID]"/> 
<xsl:variable name="Ord" select="$mptRevTag/plm:UserData/plm:UserValue/@value"/> 

当我执行上述操作时,它在输出中给了我一个空白。

请让我知道我在代码中犯的错误或如何从 xml 访问 UserData 和 UserValue。

提前致谢

4

2 回答 2

0

我向您推荐用于 PLMXML 的特殊 XSLT 处理器。 http://plmski.webnode.com/plmxml-xslt-processor/ 处理器自动确定“ref-id”。您无需确定 ID。

于 2013-08-04T09:08:20.490 回答
0

我想你有两个问题:

  1. 错字:您在选择变量“Ord”时使用“$mptRevTag”而不是“$RevTag”
  2. Xpath:在 PLMXML 结构中(至少我知道的),ProductRevision 元素并不直接位于根节点下,但 XPath 表达式应如下所示:/PLMXML/ProductDef/InstanceGraph/ProductRevision

此外,由于“标题”,我当然也会过滤 UserValue,因为 Teamcenter 的所有属性都使用此元素导出。

问候,洛伊克

于 2015-05-05T14:21:35.370 回答