我正在使用XML
我试图在整个文档中设置NS1的前缀,所以我使用了:
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.setPrefix("ns1", "http://tempuri.org/XMLSchema.xsd");
serializer.setPrefix("xsi","http://www.w3.org/2001/XMLSchema-instance");
serializer.startTag("ns1" , "HBA");
serializer.startTag("ns1", "TITLE");
serializer.text(cd.title);
serializer.endTag("ns1", "TITLE");
// and till the end
但是当我检查XML文件时,我看到了:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><n0:HBA xmlns:ns1="http://tempuri.org/XMLSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n0="ns1"><n0:TITLE></n0:TITLE>
所以在这里您可以看到前缀根据我的要求设置为N0而不是NS1。 XML也是侧面写的,但我希望将每个标签放在一个单独的行上:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<ns1:HBA xmlns:ns1="http://tempuri.org/XMLSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:TITLE>TEXT</ns1:TITLE>
<ns1:NAME>TEXT</ns1:NAME>
答案 0 :(得分:0)
我也有这个问题,我用这种方式来解决。
尝试使用&#34;命名空间&#34;在setPrefix
中定义。使用&#34;命名空间&#34; 代替&#34; 前缀&#34;作为startTag
的第一个参数。
示例:
serializer.setPrefix("ns1", "http://tempuri.org/XMLSchema.xsd");
serializer.startTag("http://tempuri.org/XMLSchema.xsd" , "HBA");
输出应为:
<ns1:HBA>
如果要分隔标记,请使用setFeature
。
setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
参考: