当您在 Entity Framework 中序列化对象时,只有该对象的第一个实例被序列化,之后对同一对象的引用将指向第一个实例。我无法获得正确的 xpath 来获取第一个实例的句柄,因此我可以读取它的属性。例如,假设我有这个 xml:
<a:root>
<a:truck>
<a:truck>
<a:name>truck1</a:name>
<a:tire>
<a:tire z:Id="i1">
<a:height>35</a:height>
<a:width>12.5</a:width>
</a:tire>
</a:tire>
</a:truck>
<a:truck>
<a:name>truck2</a:name>
<a:tire>
<a:tire z:Ref="i1" />
</a:tire>
</a:truck>
</a:truck>
</a:root>
我正在遍历卡车节点,我想获得轮胎高度。在第一种情况下,它非常简单,我可以执行以下操作:
<xsl:value-of select="a:tire/a:tire/a:height" />
但是当我到达第二个卡车节点时,轮胎节点只是对第一个轮胎节点的引用,因为它们实际上是相同的轮胎对象。
我遇到问题的部分是提出将读取z:Ref
属性值的 xpath,如果存在,则获取它指向的节点并使用它,否则使用完全序列化的节点。