我的输入XML是:
<ROOT>
<Child_1>
<Child_1_1>
<Child_1_1>
<p>test123 test456 test789 test101112</p>
</Child_1_1>
</Child_1_1>
</Child_1>
</ROOT>
我想操纵,就是说,在我的段落中23个字符之后,我想将我的文本拆分为两个(或者如果有多个23个字符出现的话更多)段落,那么就说:
<ROOT>
<Child_1>
<Child_1_1>
<Child_1_1>
<p>test123 test456 test789</p><p>test101112</p>
</Child_1_1>
</Child_1_1>
</Child_1>
</ROOT>
在Java代码中,我使用的是W3C DOM:
NodeList nodeListXml = documentXml.getElementsByTagName("p");
for (int i = 0; i < nodeListXml.getLength(); i++) {
Element elementXml = (Element) nodeListXml.item(i);
String unformattedText = elementXml.getTextContent();
String formattedText;
//some logic to split text
//...
//some logic to split text
//here "formattedText" value is "test123 test456 test789</p><p>test101112" as expected
elementXml.setTextContent(formattedText);
}
之后,我的“documentXml”包含不正确的值:
<ROOT>
<Child_1>
<Child_1_1>
<Child_1_1>
<p>test123 test456 test789</p><p>test101112</p>
</Child_1_1>
</Child_1_1>
</Child_1>
</ROOT>
我的逻辑在某种程度上不起作用,因为那些被转义的实体。我该如何解决?
答案 0 :(得分:1)
尝试这样的事情:
String[] afterSplit = unformattedText.split("")//you split logic
for(String text : afterSplit){
Element element = documentXml.createElement("p");
element.setTextContent(text);
elementXml.appendChild(element);
}