我有一个要处理的xml文件,但是xml文件不是传统的xml格式,通常xml具有以下格式,然后我可以使用java的SAXParser来提取信息:
<Info>
<Product id>123456</Product id>
<code2>985632</code2>
<code3>896523</code3>
<Product id>123343</Product id>
<code2>935632</code2>
<code3>856523</code3>
</Info>
但是现在我的xml采用这种形式,我不能使用SAXParser技术来搜索start-tag和end-tag。有什么好主意吗?
<Info>
<Product id="123456" code2="985632" code3="896523" />
<Product id="123343" code2="935632" code3="856523" />
...
</Info>
通常,java SAX解析器使用以下方法来检测xml的开始标记,xml&#39; s eng标记和xml的内容,但由于我的xml甚至没有正确的结束标记,所以我没有确定我是否可以使用java SAX解析器。
public void startElement(String uri, String localName,
String qName, Attributes attributes)
throws SAXException {
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
}
public void characters(char ch[], int start, int length)
throws SAXException {
}
答案 0 :(得分:1)
您必须通过执行以下操作来获取这些标记的属性:
@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
int length = attributes.getLength();
for(int i=0; i<length; i++) {
// Qualified name by index
String name = attributes.getQName(i);
// Attribute value by index
String value = attributes.getValue(i);
// Namespace URI by index
String nsUri = attributes.getURI(i);
// Local name by index
String lName = attributes.getLocalName(i);
}
}
这将通过索引获取标记中的所有属性。