我有一个节点,其中包含许多存储为"cards": [
{
"id": 1,
"storyId": 3,
"mediaUri": "http://localhost/api/docs#!/admin/postStory",
"mediaType": "image",
"favouriteCards": {
"createdAt": "2017-08-05T11:45:29.000Z",
"updatedAt": "2017-08-05T11:45:29.000Z",
"cardId": 1,
"userId": 1
}
}
]
属性的文本。我可以从中读取并通过此jcr:data
代码在控制台中显示它:
groovy
现在我想更改此文本中的一些字符,并将其重新设置为InputStream content = node.getNode("jcr:content").getProperty("jcr:data")
.getStream()
println(content.text) //it shows me its content = text
属性。我试过了:
jcr:data
但这会引发错误:
ValueFactory factory = session.getValueFactory()
InputStream is = new ByteArrayInputStream(Charset.forName("UTF-8")
.encode(content.text.replaceAll("xx", "yy").array())
Binary binary = factory.createBinary(is)
Value value = factory.createValue(binary)
node.setProperty("jcr:data", value)
答案 0 :(得分:1)
你记得导入javax.jcr.Binary吗?
Esit:您在.array()
之前缺少一个括号