- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个源文本文件,其中包含一堆正则表达式。我正在读取文本文件,将正则表达式匹配分配给数组索引,并使用 DOM 创建 XML。
但是,我需要将一些样板信息添加到生成的 XML 文档中。我只想使用 element.setTextContent(someBoilerPlateXML) 将 XML 样板信息放入 XML DOM 元素之一,而不是创建数百个新的、复杂的嵌套 DOM 元素。
我正在尝试 org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4 来执行此操作。它似乎适用于我的 System.out.println(someBoilerPlateXML) 测试,但不适用于 element.setTextContent(someBoilerPlateXML) 实现。
例如:
输入: String test = org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4("<Hello id=\"id\"/>");
System.out.println(test);
输出: <Hello id="id"/>
输入:Element element= doc.createElement("element");<br/>
element.setTextContent(org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4("<Hello id=\"id\">"));
结果 XML 文件中的输出: <Hello id="id"/>
为什么会这样做,我该如何纠正?我需要使用另一个免费软件包吗?
最佳答案
正如您所发现的,
element.setTextContent
将转义您提供的文本,而不是将其识别为 xml 并进行处理。
如果您想要将 xml 的文本表示形式添加为 xml,则需要将其作为 xml 进行处理,这意味着将其解析为 DOM Node
,然后将其附加到那种形式。
如果您的文本不是完整的 xml,则此方法将不起作用。在您的示例中,您只有一个开始标记,无法将其解析为创建 Node
。
但是,如果它已完成并且您发现更容易生成文本,则可以执行以下操作:
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = documentBuilder.newDocument();
Element element= doc.createElement("element");
doc.appendChild(element);
Document newDoc = documentBuilder.parse(new InputSource(new StringReader("<Hello id=\"id\"/>")));
Element newElement = newDoc.getDocumentElement();
Node node = doc.importNode(newElement, true);
element.appendChild(node);
关于Java:使用 DOM 和 unescapeHtml4() 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991713/
我正在尝试读取包含 unicode 字符的文件,将这些字符转换为其相应的符号,然后将生成的文本打印到新文件中。我正在尝试使用 StringEscapeUtils.unescapeHtml 来执行此操作
CGI.unescapeHTML似乎对无法用 HTML 字面表达的字符进行转义,例如 " " "§" 这是一项功能吗?有什么办法可以完全取消转义包含这些字符的 HTML 字符串吗? 我可以找
我有一个对象,里面有很多字符串。我想要做的是在对象内的每个字符串上使用原型(prototype) unescapeHTML 。 var messageStrings = { string1:
CGI::unescapeHTML("渣打银") => "渣打\351\223\266" CGI::unescapeHTML("渣打
我正在尝试解析 HTML 表的内容并将其写入 CSV。我正在尝试 StaX 解析器html 包含转义字符,例如 &nbps' 和 & 我正在使用 org.apache.commons.lang
我是一名优秀的程序员,十分优秀!