为什么调用setTextContent不会出现在转换后的输出中?

时间:2015-12-13 20:37:33

标签: java dom w3c

以下dom操作应该会产生不同的输出,但事实并非如此。 println表明它已经工作,但是根节点.toString()或使用Transformer失败并且结果相同。

  private void markNewLinesInTextNodes(Node node) {
    for(int i = 0 ; i < node.getChildNodes().getLength() ; i++) {
      Node child = node.getChildNodes().item(i);
      markNewLinesInTextNodes(child);
    }
    if (node instanceof Element) {
      Element el = (Element) node;
      if (el.getTagName().toLowerCase().equals("text")) {
        el.setTextContent(el.getTextContent().replaceAll("\n", "_LINEBREAK_"));
        System.out.println(el.getTextContent());
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

这有效:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <time.h>

int main() {

    char *myarray[] = { "A", "A", "BE", "CE" };  
    srand(time(NULL));
    char *number;
    number = myarray[rand() % 4];

    if (strcmp(number, "A") == 0) {
        printf("%s", number);
    }
    else {
        printf("%s", number);
    }
return 0;
}

然后:

  • 你确定选择了吗?

  • 你如何输出它?

试试:

  if (el.getTagName().toLowerCase().equals("text")) {
    el.setTextContent(el.getTextContent().replaceAll("\n", "_LINEBREAK_"));
    System.out.println(el.getTextContent());