我有一个XML到JDBC的情况,我使用 ServingXML 更新了2个表和一个xml文件。 表是PRODUIT和PRODUITCATALOGUE。
我正在尝试在进行JDBC更新时使用子节点中父节点的字段(或在本例中属性)。 我必须在两个节点上重复NUMPRODUIT属性作为SQL更新中的密钥。
有没有办法在我的PRODUITCATLOGUE节点中重用父节点NUMPRODUIT?
我有这种XML结构:
<produit numproduit="18021901">
<qteinv>155</qteinv>
<produitcatalogue numproduit="18021901">
<sap_statut>A</sap_statut>
</produitcatalogue>
我在资源文件中的映射:
<sx:inverseRecordMapping id="produitMapping">
<sx:onSubtree path="/produits/produit">
<sx:flattenSubtree recordType="produit">
<sx:subtreeFieldMap select="@numproduit" field="numproduit"/>
<sx:subtreeFieldMap select="qteinv" field="qteinv"/>
<sx:subtreeFieldMap match="produitcatalogue" field="produitscatalogue">
<sx:flattenSubtree recordType="produitcatalogue">
<sx:subtreeFieldMap select="@numproduit" field="numproduit"/>
<sx:subtreeFieldMap select="sap_statut" field="sap_statut"/>
</sx:flattenSubtree>
</sx:subtreeFieldMap>
我希望能够在我的produitcatalogue节点上删除numproduit并运行和更新 更新produitcatalogue set ..其中id = @ produit / numproduit
此致
中号
答案 0 :(得分:0)
我能够通过使用:
实现这一目标 <sx:parameter name="numproduit" select="@numproduit"/>
然后在我的所有其他映射中使用$ numproduit引用它。
新的资源映射:
<sx:inverseRecordMapping id="produitMapping">
<sx:onSubtree path="/produits/produit">
<sx:flattenSubtree recordType="produit">
<sx:parameter name="numproduit" select="@numproduit"/>
<sx:subtreeFieldMap select="$numproduit" field="numproduit"/>
<sx:subtreeFieldMap select="qteinv" field="qteinv"/>
<sx:subtreeFieldMap match="produitcatalogue" field="produitscatalogue">
<sx:flattenSubtree recordType="produitcatalogue">
<sx:subtreeFieldMap select="$numproduit" field="numproduit"/>
<sx:subtreeFieldMap select="sap_statut" field="sap_statut"/>
</sx:flattenSubtree>
</sx:subtreeFieldMap>