Java Sax XML解析器,解析XML标记内的自定义“值”?
作者:互联网
在此之前,我没有对XML进行过多的工作,所以也许我对适当术语的不了解正在损害我对如何执行此操作的搜索.我有下面的代码片段,用于解析一个XML文件,如下所示.问题在于,它仅在< Tag> Value< / Tag>中选择XML值.但不适用于以下需要获取TagValue值的情况,在这种情况下,该值将为“ Russell Diamond”.
如果有人可以提供有关如何获得自定义值的帮助,我将不胜感激.谢谢.
<Tag TagName="#Subject" TagDataType="Text" TagValue="Russell Diamond"/>
我正在使用的代码段:
public void printElementNames(String fileName) throws IOException {
//test write to file
FileWriter fstream = new FileWriter("/home/user/Desktop/readEDRMtest.txt");
final BufferedWriter out = new BufferedWriter(fstream);
//
try {
SAXParserFactory parserFact = SAXParserFactory.newInstance();
SAXParser parser = parserFact.newSAXParser();
System.out.println("XML Elements: ");
DefaultHandler handler = new DefaultHandler() {
public void startElement(String uri, String lName, String ele,
Attributes attributes) throws SAXException {
// print elements of xml
System.out.println(ele);
try {
out.write(ele);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void characters(char ch[], int start, int length)
throws SAXException {
System.out.println("Value : "
+ new String(ch, start, length));
try {
out.write("Value : "
+ new String(ch, start, length));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
解决方法:
您想研究提取属性.搜索该内容,您将找到答案.
DefaultHandler类的startElement(…)方法传递一个称为attribute的参数,该参数引用Attribute对象. API for the Attribute interface将描述如何从该对象中提取所需的信息.
例如:
out.write(attributes.getValue("TagValue"));
标签:parsing,saxparser,java,xml,sax 来源: https://codeday.me/bug/20191023/1913404.html