带有命名空间前缀的 TagSoup 属性

Posted

技术标签:

【中文标题】带有命名空间前缀的 TagSoup 属性【英文标题】:TagSoup attributes with namespace prefix 【发布时间】:2011-05-09 20:50:17 【问题描述】:

为了使用 TagSoup 解析 xml 响应,我正在扩展 DefaultHandler,现在我遇到的问题是它忽略了方法中具有限定名称的属性;

public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException 

元素如下所示;

<element xmlns:ns2="http://my.ns.url">content</element>

当它到达该元素的 startElement 方法时,atts 参数中没有任何属性。有谁知道如何在不调整 xml 的情况下解决这个问题?

编辑 我尝试对该功能使用setFeature 方法;

http://xml.org/sax/features/namespace-prefixes

但是没有任何结果

【问题讨论】:

不是 html 的 TagSoup 解析器吗?它生成 SAX 事件,但其主要目标是“从野外”解析 HTML 文件。 【参考方案1】:

我通过停止使用 TagSoup 来修复它,并解决了标准的 android SAXParser。然后我更改了功能设置如下;

setFeature("http://xml.org/sax/features/namespaces", false);    
setFeature("http://xml.org/sax/features/namespace-prefixes", true);

【讨论】:

以上是关于带有命名空间前缀的 TagSoup 属性的主要内容,如果未能解决你的问题,请参考以下文章

添加带有前缀的开始元素,没有命名空间

来自带有命名空间前缀的 xml 的 xpath 表达式

带有命名空间和前缀的 Json 到 XML

Open Graph 命名空间声明:带有 XMLNS 或 head 前缀的 HTML?

接收解析 XML:未绑定前缀错误和属性缺少 Android 命名空间前缀

如何用前缀替换 xmlns 命名空间属性?