如何使用xpath编辑特定的xml

我有以下xml,使用xslt函数json-to-xml()生成。 我需要使用给定的xpath更新此xml,如结果xml中所示。 我需要java或xslt中的解决方案。 任何帮助将非常感激。

XML

    Lisa 200 applicaton/json      ccc mmm   666 333     abc 2018       

的XPath

 /Response/Payload/root/cars[2]/strength=999 /Response/Payload/root/bikes/model=2019 /Response/Headers/server=WebSphere /Response/Headers/Content-Type=text /Response/Payload/root/cars[2]/Capacity=555 /Response/Payload/root/cars[1]/model=mmm1 /Response/Payload/root/bikes/company=xyz /Response/Payload/root/cars[1]/company=ccc1 /Response/Headers/Status-Code=400 

更新的结果XML

    WebSphere 400 text      ccc1 mmm1   999 555     xyz 2019       

我的尝试
我尝试使用xslt函数将此xml转换回json,然后使用com.jayway.jsonpath Jayway JsonPath库来解析/更改给定xpath上的json值。 然后最后使用xslt函数将json再次更改为xml。 这对我来说就像魅力一样! 但是在使用这个库之后我开始在我的应用程序的其他部分遇到问题:(。所有json请求体的发布请求开始给出400错误。错误是“错误400客户端发送的请求在语法上不正确”。我不能找出问题并且可能是由于不同的jar骗局。所以我正在尝试其他方式工作。任何其他库如Jayway JsonPath?或任何其他解决方案/建议将帮助很多。

给出XSLT 3的一种方法可能是将那些路径转换为XSLT 3匹配模板,然后创建一个可以使用transform函数执行的样式表( https://www.w3.org/TR/xpath-functions/#func-变换 ):

     /Response/Payload/root/cars[2]/strength=999 /Response/Payload/root/bikes[1]/model=2019 /Response/Headers/server=WebSphere /Response/Headers/Content-Type=text /Response/Payload/root/cars[2]/Capacity=555 /Response/Payload/root/cars[1]/model=mmm1 /Response/Payload/root/bikes[1]/company=xyz /Response/Payload/root/cars[1]/company=ccc1 /Response/Headers/Status-Code=400                    /    /    /       

在https://xsltfiddle.liberty-development.net/jyyiVhv/1我得到想要的结果

     WebSphere 400 text      ccc1 mmm1   999 555     xyz 2019       

虽然我不得不调整包括bikes在内的bikes路径bikes[1]