我知道這被問了很多次,但我仍然無法使它工作。我將xml字符串轉換爲Document對象,然後解析它。下面是代碼:java xml將節點轉換爲元素
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try
{
builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(result)));
Node head = document.getFirstChild();
if(head != null)
{
NodeList airportList = head.getChildNodes();
for(int i=0; i<airportList.getLength(); i++) {
Node n = airportList.item(i);
Element airportElem = (Element)n;
}
}
catch (Exception e) {
e.printStackTrace();
}
當我投的Node對象n至元我得到一個異常java.lang.ClassCastException:org.apache.harmony.xml.dom.TextImpl不能轉換爲org.w3c。 dom.Element。當我檢查節點對象的節點類型時,它表示Node.TEXT_NODE。我相信它應該是Node.ELEMENT_NODE。我對嗎?
那麼,我如何將Node轉換爲Element,所以我可以做類似element.getAttribute(「attrName」)的操作。
這裏是我的XML:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfCity xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<City>
<strName>Abu Dhabi</strName>
<strCode>AUH</strCode>
</City>
<City>
<strName>Amsterdam</strName>
<strCode>AMS</strCode>
</City>
<City>
<strName>Antalya</strName>
<strCode>AYT</strCode>
</City>
<City>
<strName>Bangkok</strName>
<strCode>BKK</strCode>
</City>
</ArrayOfCity>
提前感謝!
我們如何是爲了知道第一個節點是否應該是一個元素或者文本,當你的避風港不顯示我們的文件?我強烈懷疑解析器是正確的,雖然...我懷疑你可能只是想跳過非元素節點。 –
我已經添加了xml。節點應該是一個元素,而不是文本。我對麼? –
Student
是的,但我認爲你會發現它''和''之間的文本元素(可能只是一個換行符) - 每個' '和''之間。 –