我想使用SAX解析器解析xml文件中的一些数据。我的xml如下:
<categories>
<cat>Pies & past</cat>
<cat>Fruits</cat>
</categories>
为了解析此数据,我扩展了DefaultHandler。
解析后的输出为:
cat 1 = Pies
cat 2 = &
cat 3 = past
cat 4 = Fruits
为什么发生这种情况而不是得到:
cat 1 = Pies & past
cat 2 = Fruits
我的猜测是,您将每次调用都characters
视为交付cat
元素的完整文本。您应该对处理程序进行编码,以便连续调用以characters
累积文本,并且仅在endElement
事件发生时捕获它:
public class CatHandler extends DefaultHandler {
private StringBuilder chars = new StringBuilder();
public void startElement(String uri, String lName, String qName, Attributes a)
{
final String name = qName == null ? lName : qName;
if ("cat".equals(name)) {
chars.setLength(0);
} else . . .
}
public void endElement(String uri, String lName, String qName) {
final String name = qName == null ? lName : qName;
if ("cat".equals(name)) {
String catName = chars.toString();
// do something with cat name
} else . . .
}
public void characters(char[] ch, int start, int length) {
chars.append(ch, start, length);
}
问题内容: 我有一个XML文件,我需要在其中搜索特定的标签并更新其值。问题在于,使用Sax解析器是“必须的”。我必须通过“仅”使用Sax解析器来找到这些标签,dom stax j4dom dom4j解析器不在考虑范围之内。 我可以通过将xml文件转换为字符串并使用sax解析器对其进行解析并按对象附加新值来完成此任务吗?可以吗 或您会推荐什么? 问题答案: 这是一个有效的代码,只需添加缺少的导入。它
问题内容: 我需要解析一个XML流。由于我只需要做一次就可以构建我的java对象,因此SAX看起来很自然。我正在扩展DefaultHandler并实现startElement,endElement和character方法,在我的类中具有保存当前读取值(在characters方法中使用)的成员。 我可以轻松完成所需的工作,但是我的代码变得相当复杂,并且我确信没有理由这样做,并且我可以做不同的事情。我
问题内容: 我正在将某些Web“服务”从WCF Rest转换为MVC3。 我们的旧网络服务使用以下命令从POCO返回JSON就好了: 在我的控制器中返回一个简单的poco,我使用JsonResult作为返回类型,并使用创建json 。 在WCF Rest服务中,撇号和特殊字符在呈现给客户端时会被格式化。 在MVC3控制器中,撇号显示为\ u0027。 有什么想法吗?我是序列化JSON的新手,因此任
问题内容: 有人可以帮我,如何解析JSON中的特殊字符?自从我制作德语应用程序以来,它包含许多特殊字符,例如ä,ö,ü,ß。有人可以告诉我如何通过解析JSON显示那些字符吗?现在,它们仅显示为“?” 这是我的JSON解析方法: 谢谢。 问题答案: 此类字符必须至少采用UTF-8编码。检查您的文件是否已保存在此编码中。
问题是,有时属性值包含需要对此处指定的整个过滤器进行转义的特殊字符: https://msdn.microsoft.com/en-us/library/aa746475(v=vs.85). aspx 和此处指定的专有名称ATITBUTE值: https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85). aspx 为了实现这一点,服务必须执行