NutzCN Logo
问答 Xmls.asMap(root)问题
发布于 2158天前 作者 qq_e48f71e9 1418 次浏览 复制 上一个帖子 下一个帖子
标签:
        @Test
    public void test3() throws UnsupportedEncodingException {
        NutMap data = NutMap.NEW();
        data.setv("aaa","111");
        data.setv("bbb","222");
        String oper = Xmls.mapToXml("person", data);
        Document xml = Xmls.xml(new ByteArrayInputStream(oper.getBytes("UTF-8")));

        Element root = xml.getDocumentElement();
        Element sign_ele = xml.createElement("ddd");
        root.appendChild(sign_ele);
        String dd = Xmls.mapToXml("test", Xmls.asMap(root));
        System.out.println(dd);
    }

输出:

<?xml version="1.0" encoding="utf-8"?>
<test>
  <aaa>111</aaa>
  <bbb>222</bbb>
</test>

我想要的结果为:

<?xml version="1.0" encoding="utf-8"?>
<test>
  <aaa>111</aaa>
  <bbb>222</bbb>
  <ddd>222</ddd>
</test>

请问这是算一个bug还是正常的?我应该如何实现空的元素转换为xml

7 回复

我想要的结果为这个,抱歉刚才打错了

<?xml version="1.0" encoding="utf-8"?>
<test>
  <aaa>111</aaa>
  <bbb>222</bbb>
  <ddd></ddd>
</test>

就算里面加了若干空格也不行

@Test
    public void test3() throws UnsupportedEncodingException {
        NutMap data = NutMap.NEW();
        data.setv("aaa","111");
        data.setv("bbb","222");
        String oper = Xmls.mapToXml("person", data);
        Document xml = Xmls.xml(new ByteArrayInputStream(oper.getBytes("UTF-8")));

        Element root = xml.getDocumentElement();
        Element sign_ele = xml.createElement("ddd");
        sign_ele.setTextContent("    ");
        root.appendChild(sign_ele);
        String dd = Xmls.mapToXml("test", Xmls.asMap(root));
        System.out.println(dd);
    }
<?xml version="1.0" encoding="utf-8"?>
<test>
  <aaa>111</aaa>
  <bbb>222</bbb>
</test>


应该是bug了, 没考虑这种情况, 报个issue? 或者来个pull request?

可否先给个临时方案。。。。

看了看, 是Xmls.asMap(root)的时候没有ddd了

        NutMap re = Xmls.asMap(root);
        re.addv("ddd", "");
        String dd = Xmls.mapToXml("test", re);
        System.out.println(dd);

这样能输出空的ddd节点, 所以是asMap方法的问题

嗯....先应付了,我叫蛋蛋提issues

添加回复
请先登陆
回到顶部