我试图将对象内的数据编组为基于已定义架构的xml文件。但是,当我打印出xml文件时,我会在xml标签上收到额外的注释。有什么办法摆脱多余的命名空间注释(即ns2)
这是我从编组中收到的xml的示例。
<?xml version="1.0" encoding="UTF-8" standalone="yes">
<root xmlns:ns2="http://www.something.com/something">
<ns2:food>steak</ns2:food>
<ns2:beverage>water</ns2:beverage>
</root>
我想要的是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="yes">
<root xmlns="http://www.something.com/something">
<food>steak</food>
<beverage>water</beverage>
</root>
这是我的Java代码正在做的事情:
JAXBContext context = JAXBContext.newInstance("com.schema");
JAXBElement<FoodSchema> element = new JAXBElement<FoodSchema>
(new QName("FoodSchema"), Food.class, foodSchema);
Marshaller marshaller = context.createMarshaller();
OutputStream os = new FileOutputStream(object.getFilePath());
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(element, os);
任何帮助深表感谢!谢谢!
通过向QName
用于构造JAXB元素的名称空间添加URI名称空间URI(“
http://www.something.com/something”),并利用包级@XmlSchema
注释,将为您提供所需的名称空间限定:
包装信息
@XmlSchema(
namespace="http://www.something.com/something",
elementFormDefault=XmlNsForm.QUALIFIED)
package forum7014746;
import javax.xml.bind.annotation.*;
餐饮
package forum7014746;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Food {
private String food;
private String beverage;
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public String getBeverage() {
return beverage;
}
public void setBeverage(String beverage) {
this.beverage = beverage;
}
}
演示版
package forum7014746;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.namespace.QName;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jaxbContext = JAXBContext.newInstance(Food.class);
Food foodSchema = new Food();
foodSchema.setFood("steak");
foodSchema.setBeverage("water");
JAXBElement<Food> element = new JAXBElement<Food> (new QName("http://www.something.com/something","FoodSchema"), Food.class, foodSchema);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(element, System.out);
}
}
输出量
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FoodSchema xmlns="http://www.something.com/something">
<beverage>water</beverage>
<food>steak</food>
</FoodSchema>
有没有办法删除KML文件中额外的命名空间前缀(即ns2)? 这是我从代码中收到的 kml 的一个示例: 我想要的是这样的: 这是我的java代码: 非常感谢任何帮助!谢谢!
我有一个带有声明的XML文件,需要使用XSLT将其删除,用于我使用的样式表版本=“2.0” 我拥有的xml文件(输入) 我需要的输出
有没有办法从一个巨大的xml文件中删除注释( 两者,根元素前的注释 和内的注释 最好的解决方案是使用xPath。我试过了 它适用于DOM,但不适用于vtd xml 这是我选择评论的代码 但此处的屏幕上打印的是nothing。 有没有办法用vtd xml做到这一点? 谢谢你的帮助。
问题内容: 给定一个n个对象数组,假设它是一个string数组,并且具有以下值: 如何删除/删除数组中所有等于“ a”的字符串/对象? 问题答案: [如果需要一些现成的代码,请滚动到我的“ Edit3”(剪切后)。其余的供后代使用。] 为了充实清洁工的想法: 编辑:我现在使用而不是:单例仅限于一个条目,而该方法允许你添加其他字符串以稍后过滤:。 Edit2:以上方法保留了相同的数组(因此数组的长度
问题内容: 如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。 情况如下:我有一个包含包含其他一些对象的类。我必须对此进行迭代,并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项: 创建一个新的并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。 创建一个新的并添加满足条件的元素。迭代后,使用传递要删除对象的方法。 有没有更有效的方法从中删除对象?
我有一个5页的pdf文件,每页有一个表,我需要提取。我需要从每一页提取所有的表,并将它们保存为数据帧文件,所有使用python,所以我转换了文件,使用tabula的csv文件 文件输出的主要问题。csv是指有几个额外的逗号。 实例 当我将csv文件转换成行/列时,我得到了一些行偏移 注意:dataframe应该有6列,其中包含空字段。我猜额外的逗号来自pdf文件中的空格。如何从csv文件中删除额外