提问人:Ankit Verma 提问时间:6/28/2022 更新时间:7/27/2022 访问量:690
如何在android中解析xml文件?
How to parse an xml file in android?
问:
我有一个XML文件,如
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
我需要“OEBPS/content.opf”文本的值。我尝试使用文档生成器和XML解析器,但没有结果。如何遍历到该节点并获取值full-path
答:
-1赞
Int'l Man Of Coding Mystery
6/28/2022
#1
我使用 Jackson 来序列化和反序列化(解析)xml。我为每个元素制作一个 POJO,然后根据需要使用它解析到 POJO 的注释。下面是一个粗略的例子。但是这两个外部类将使用注释忽略所有内容(除非您将其包含在 POJO 中)。该类将使用注释解析所需的属性。@JsonIgnoreProperties
Rootfile
@JacksonXmlProperty
旁注:我不是 100% 在 .这就是我标记 xml 根的方式,但我的同事使用@JsonRootName
@JackonXmlRootElement(value = "...")
@JsonRootName(value = "container")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Container {
@JsonIgnoreProperties(ignoreUnknown = true)
public class Rootfiles {
@JsonRootName(value = "rootfile")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Rootfile {
@JacksonXmlProperty(isAttribute = true, localName = "full-path")
private String fullPath;
public String getFullPath() { return fullPath; }
}
}
}
评论
0赞
Ankit Verma
6/29/2022
@JacksonXmlProperty - 找不到此注解,能否指定使用的特定依赖项。
0赞
Int'l Man Of Coding Mystery
6/30/2022
有几个不同的注释,但这个与该注释有关。我还更新了答案中的链接,其中包含包裹信息以及:D,我粘贴了错误的链接。对不起,fasterxml.github.io/jackson-dataformat-xml/javadoc/2.2.0/com/...
0赞
Ankit Verma
7/27/2022
#2
我找到了一种访问属性值的方法。我已经解释了评论中的所有行。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file); // We can use inputstream or uri also
NodeList node = doc.getElementsByTagName("rootfile"); // gets list of all nodes by specified tag name.
Node map = node.item(0); // Getting the specific node
NamedNodeMap namedNodeMap = map.getAttributes(); // Getting attributed of the nodes.
Node file_path = namedNodeMap.getNamedItem("full-path"); // getting the partcular node attribute
String path = file_path.getNodeValue(); // This will give the value of full-path
评论