在标签之间读取XML数据

时间:2012-05-17 23:52:26

标签: java xml servlets jdom

我有一个XML,我正在编写一个servlet来从XML中获取内容。一个这样的标签是<itunes:author>Jonathan Kendrick</itunes:author>
我需要为此获得作者价值。因为

我尝试使用命名空间并使用转义序列,但它对我没用。

对于其他XML元素,我只是使用

String link=node.getChildText("link").toString();

我正在使用Jdom解析器

1 个答案:

答案 0 :(得分:3)

在你的XML中,sequernce'unes:author'代表所谓的Q-Namem是一个“合格的名字”。在XML中,它由'命名空间前缀'和'本地名称'组成。在您的示例中,名称空间前缀为“itunes”,“本地名称”为“author”。

你想要的是链接到前缀'itunes'的命名空间中的'author'元素。实际的命名空间通常是完整的URL。我相信你的例子的完整URL可能是xmlns:itunes =“http://www.itunes.com/dtds/podcast-1.0.dtd”,但你应该检查一下。

因此,命名空间是“http://www.itunes.com/dtds/podcast-1.0.dtd”,它的前缀被声明为'itunes'(但它可能是其他的 - 实际的前缀名称是在技​​术上不重要......)

您希望在“http://www.itunes.com/dtds/podcast-1.0.dtd”命名空间中获取“作者”,以便您想要:

String author = node.getChildText("author", Namespace.getNamespace("http://www.itunes.com/dtds/podcast-1.0.dtd"));

有关命名空间的详细信息,请查看:http://www.w3schools.com/xml/xml_namespaces.asp