我必须在我的请求中附加或连接一个随机数,即6869到太多的id和idref。
实际请求包含数千行,其中有许多ID。
样品申请:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<jsonObject>
<_JsonReader_PS_id>1</_JsonReader_PS_id>
<Children>
<Parent>
<_JsonReader_PS_ref>1</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>4</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>5</_JsonReader_PS_id>
<Instance>
<_JsonReader_PS_id>6</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>7</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>8</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>7</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>10</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>7</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>12</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>7</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>14</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>7</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>16</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>7</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>6</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>5</_JsonReader_PS_ref>
</Parent>
</Instance>
<Guid>b5c75f37-6381-45f8-806b-c22a49ab6962</Guid>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>4</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>1</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>19</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>1</_JsonReader_PS_ref>
</Parent></Children>
<Children>
<_JsonReader_PS_id>21</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>1</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>23</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>1</_JsonReader_PS_ref>
</Parent>
</Children>
</jsonObject>
</soapenv:Body>
</soapenv:Envelope>
期望的输出:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<jsonObject>
<_JsonReader_PS_id>16869</_JsonReader_PS_id>
<Children>
<Parent>
<_JsonReader_PS_ref>16869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>46869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>56869</_JsonReader_PS_id>
<Instance>
<_JsonReader_PS_id>66869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>76869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Children>
<_JsonReader_PS_id>86869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>76869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>106869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>76869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>126869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>76869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>146869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>76869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>166869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>76869</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>66869</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>56869</_JsonReader_PS_ref>
</Parent>
</Instance>
<Guid>b5c75f37-6381-45f8-806b-c22a49ab6962</Guid>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>46869</_JsonReader_PS_ref>
</Parent>
</Children>
<Parent>
<_JsonReader_PS_ref>16869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>196869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>16869</_JsonReader_PS_ref>
</Parent></Children>
<Children>
<_JsonReader_PS_id>216869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>16869</_JsonReader_PS_ref>
</Parent>
</Children>
<Children>
<_JsonReader_PS_id>236869</_JsonReader_PS_id>
<?xml-multiple Children?>
<Parent>
<_JsonReader_PS_ref>16869</_JsonReader_PS_ref>
</Parent>
</Children>
</jsonObject>
</soapenv:Body>
</soapenv:Envelope>
xslt我尝试但未能产生所需的输出。它无法访问xpath字段的值
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="id" match="ID" use="." />
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//_JsonReader_PS_id">
<xsl:copy>
<xsl:value-of select="concat(//_JsonReader_PS_id, '6869')"/>
</xsl:copy>
</xsl:template>
<xsl:template match="_JsonReader_PS_ref">
<xsl:copy>
<xsl:value-of select="concat(//_JsonReader_PS_ref, '6869')"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
而不是这样做......
<xsl:template match="//_JsonReader_PS_id">
<xsl:copy>
<xsl:value-of select="concat(//_JsonReader_PS_id, '6869')"/>
</xsl:copy>
</xsl:template>
这样做......
<xsl:template match="_JsonReader_PS_id">
<xsl:copy>
<xsl:value-of select="concat(., '6869')"/>
</xsl:copy>
</xsl:template>
.
表示您刚刚匹配的当前节点。 (执行//_JsonReader_PS_id
获取文档中的所有_JsonReader_PS_id
,而不仅仅是您匹配的文档。当您将其放入concat
语句时,它将只使用文档中的第一个)。
同样适用于其他模板
<xsl:template match="_JsonReader_PS_ref">
<xsl:copy>
<xsl:value-of select="concat(., '6869')"/>
</xsl:copy>
</xsl:template>
实际上,这两个模板可以组合成一个
<xsl:template match="_JsonReader_PS_id|_JsonReader_PS_ref">
<xsl:copy>
<xsl:value-of select="concat(., '6869')"/>
</xsl:copy>
</xsl:template>
中查看此操作