首页 > 解决方案 > 防止 Jsoup Element 对象标签小写

问题描述

我是韩国人。

我英语说得不太好。

我喜欢Jsoup。

我的项目中需要 XML(soap) 解析。

我了解 Document 对象的 Parser.xmlParser() 。

但是当我使用 Element 对象更改小写字符时。

前任) Element element = new Element("TEST") -> <test></test>

所以,我检查了这些解决方案。

[第一的]

Document document = Jsoup.parse("<soapenv:Envelope.....", "", Parser.xmlParse())

Node node = new Element("TEST")

Element element = (Element)node; -> <TEST>/<TEST>

document.getElementByTag("soapenv:Body").get(0).appendChild(element)

[第二]

Document document = Jsoup.parse("", "", Parser.xmlParse())

Element element = document.appendElement("TEST")

呜呜呜呜

有什么问题吗?

希望Element对象“new XMLElement("TEST")”或者“new HTMLElement("test")”像“new HashMap, new LinkedHashMap”接口格式....

标签: xmlparsingsoapjsouplowercase

解决方案


您通过调用遇到的问题new Element(tagname)是没有传递给创建者的文档上下文,您希望标签区分大小写,因此 jsoup 默认为小写(HTML)行为。

以下是确保将区分大小写设置应用于新元素的几个示例方法:

Document document = Jsoup.parse("<soapenv:Envelope>Foo</soapenv:Envelop>", 
    "", Parser.xmlParser());
document.append("<TEST id=1>Bar</TEST>");

Element second = document.createElement("Test");
document.appendChild(second);

System.out.println(document.outerHtml());

给予:

<soapenv:Envelope>Foo</soapenv:Envelope><TEST id="1">Bar</TEST><Test></Test>

有关详细信息,请参阅Document#createElement(tagname)Element#append(html)


推荐阅读