鉴于我并不完全确定如何说出来,我的头衔并不是那么好,但问题在于我创造了以下方法:
private static int createItem(Document xml) throws JDOMException, IOException{
Element element = xml.getRootElement();
Namespace ns = element.getNamespace();
String itemName = xml.getRootElement().getChild("itemName", ns).getText();
Element newItem = new Element("createItem", ns);
newItem.addContent(new Element("shopKey", ns).addContent(key));
newItem.addContent(new Element("itemName", ns).addContent(itemName));
Document itemIDResponse = post("/createItem", new Document(element));
}
目的是创建一个项目并准备它以将其发送到POST请求。我有一种感觉,虽然我的整个方法都是错误的,但是它给我带来了一些我已经修复的错误,除非现在最后还有一个错误就是:
Exception in thread "main" java.lang.NullPointerException
at TestPostRequester.createItem(TestPostRequester.java:56)
at TestPostRequester.main(TestPostRequester.java:38)
其中突出显示第56行:
String itemName = xml.getRootElement().getChild("itemName", ns).getText();
以及在我的main方法中调用createItem的方法:
int itemID = createItem(xmlDoc);
我的XML文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<items xmlns="website">
<item>
<itemID>1</itemID>
<itemName>CupA</itemName>
<itemURL>none</itemURL>
<itemPrice>50</itemPrice>
<itemStock>15</itemStock>
<itemDescription>
<document>
A <italics> beautiful and authentic</italics> cup.Containing the following elements:
<list>
<item>It's rich in history</item>
<item>Eccentrically beautiful</item>
<item>Organic and 100%
<bold>vegan</bold>
</item>
</list>
</document>
</itemDescription>
答案 0 :(得分:0)
您缺少XML层次结构中的级别。你有什么:
String itemName = xml.getRootElement() .getChild("itemName", ns) .getText();
你应该拥有什么:
String itemName = xml.getRootElement()
.getChild("item", ns)
.getChild("itemName", ns)
.getText();
XPath也可以使用....你应该考虑一下。