【问题标题】:ho to create XML header如何创建 XML 标头
【发布时间】:2017-01-29 11:19:55
【问题描述】:

请问如何在 Java 中创建这样的 xml 标头。

<cfg:configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-
    instance" xmlns:ContentRouter="http://company/ContentRouter-3.0" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cfg="http://company/configuration">.

我正在使用DocumentBuilderFactory,我的 xml 看起来很相似,但有点不同..

我的代码:

Element rootElement = doc.createElement("cfg:configuration");
Attr attr1 = doc.createAttribute("xmlns:xsi");
attr1.setValue("http://www.w3.org/2001/XMLSchema-instance");
Attr attr2 = doc.createAttribute("xmlns:ContentRoute");
attr2.setValue("http://eurotel/ContentRouter-3.0");
Attr attr3 = doc.createAttribute("xmlns:xs");
attr3.setValue("http://www.w3.org/2001/XMLSchema");
Attr attr4 = doc.createAttribute("xmlns:cfg");
attr4.setValue("http://eurotel/configuration");

感谢您的帮助!

【问题讨论】:

    标签: java xml


    【解决方案1】:

    你可以这样做

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.DOMImplementation;
    import org.w3c.dom.Document;
    import org.w3c.dom.ls.DOMImplementationLS;
    import org.w3c.dom.ls.LSOutput;
    import org.w3c.dom.ls.LSSerializer;
    
    public class RegexTest {
        private static DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    
        public static void main(String[] args) throws Exception {
            RegexTest domTest = new RegexTest();
            domTest.testXmlDocumentWithNamespaces();
        }
    
        public void testXmlDocumentWithNamespaces() throws Exception {
            DocumentBuilder db = dbf.newDocumentBuilder();
            DOMImplementation domImpl = db.getDOMImplementation();
            Document document = addNameSpaces(domImpl);
            serialize(domImpl, document);
        }
    
        private Document addNameSpaces(DOMImplementation domImpl) {
            Document document = domImpl.createDocument("http://company/configuration", "cfg:configuration", null);
            document.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:ContentRouter", "http://company/ContentRouter-3.0");
            document.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xs", "http://www.w3.org/2001/XMLSchema");
            document.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
    
            return document;
        }
    
        private void serialize(DOMImplementation domImpl, Document document) {
            DOMImplementationLS ls = (DOMImplementationLS) domImpl;
            LSSerializer lss = ls.createLSSerializer();
            LSOutput lso = ls.createLSOutput();
            lso.setByteStream(System.out);
            lss.write(document, lso);
        }
    
    }
    

    打印:

    <?xml version="1.0" encoding="UTF-8"?>
    <cfg:configuration xmlns:cfg="http://company/configuration" xmlns:ContentRouter="http://company/ContentRouter-3.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    

    附:引用thisthis

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多