我有一个XML文档,以及该文档的XPath表达式.我必须在运行时使用XPath来更新doc.
我怎么能用Java做到这一点?
以下是我的xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<PersonList>
<Person>
<Name>Sonu Kapoor</Name>
<Age>24</Age>
<Gender>M</Gender>
<PostalCode>54879</PostalCode>
</Person>
<Person>
<Name>Jasmin</Name>
<Age>28</Age>
<Gender>F</Gender>
<PostalCode>78745</PostalCode>
</Person>
<Person>
<Name>Josef</Name>
<Age>232</Age>
<Gender>F</Gender>
<PostalCode>53454</PostalCode>
</Person>
</PersonList>
Run Code Online (Sandbox Code Playgroud)
我必须更改名称和年龄的值//PersonList/Person[2]/Name.
我正在编写一个java服务,我正在为输出构建文档.但我的结构应该是:OutPut Doc是顶级文档.在里面,我想有另一个Doc说中级文档,在这个中级文档中,我希望有Key值.
但我的问题是如何将一个文档插入另一个文档.我看到IDataUtil有一个方法,它要求键作为字符串,值可以是对象.
我的代码是 IDataUtil.put(idcvalueDoc, "Body", FullValue.toString());
但是这个Body应该不是字符串它应该是文档.我想将一个Doc插入另一个.
请帮我

我在获取正确的正则表达式时遇到问题。我有以下 xml 作为字符串
<user_input>
<UserInput Question="test Q?" Answer=<value>0</value><sam@testmail.com>"
</user_input>
Run Code Online (Sandbox Code Playgroud)
现在我只需要从 Answer 属性中删除 xml 字符。所以我需要以下内容:-
<user_input>
<UserInput Question="test Q?" Answer=value0value sam@testmail.com"
</user_input>
Run Code Online (Sandbox Code Playgroud)
我试过下面的正则表达式,但没有解决:-
str1.replaceAll("Answer=.*?<([^<]*)>", "$1");
Run Code Online (Sandbox Code Playgroud)
它删除了之前的所有文本..
有人可以帮忙吗?