xmlbeans去掉前缀解决办法

今天在做xmlbeans的时候,发现生成的xml字符串都带有前缀“myx”:

 

<myx:book xmlns:myx="http://www.example.org/MyXMLSchema">
    <myx:date>2000-3-9</myx:date>
    <myx:name>sjs</myx:name>
    <myx:price>800</myx:price>
</myx:book>

 在网上查了好久,终于查到了解决办法:

 

 StringBuffer xmlGen = new StringBuffer();
        BookDocument doc = null;
        try {
            /*
               增加  XmlOptions;
               之前输出:
               <myx:book xmlns:myx="http://www.example.org/MyXMLSchema"><myx:date>2000-3-9</myx:date><myx:name>sjs</myx:name><myx:price>800</myx:price></myx:book>
               之后输出:
               <book xmlns="http://www.example.org/MyXMLSchema"><date>2000-3-9</date><name>sjs</name><price>800</price></book>
            * */
            XmlOptions xo = new XmlOptions();
            xo.setUseDefaultNamespace();
            doc = BookDocument.Factory.newInstance();
            Book b = doc.addNewBook();
            b.setDate("2000-3-9");
            b.setName("sjs");
            b.setPrice(800);
            /*doc.xmlText(xo) 需要加上xo,否则输出的xml字符串标签前有前缀*/
            xmlGen.append(doc.xmlText(xo));//xml字符串

 也就是在将XML文档转化为text时,需要增加XmlOptions参数;并且需要将该参数设置为xo.setUseDefaultNamespace();


增加之后输出的XML就去掉了前缀“myx”:

 

<book xmlns="http://www.example.org/MyXMLSchema">
    <date>2000-3-9</date>
    <name>sjs</name>
    <price>800</price>
</book>

 至此,该问题解决。

你可能感兴趣的:(bean)