2012-02-28 73 views
1

我們使用SAX解析器解析XML文件。是否有可能從XML獲取模式位置?從XML文件獲取模式位置(noNamespaceSchemaLocation)

<view id="..." title="..." 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="{schema}"> 

我想檢索XML中的{schema}值。這可能嗎?以及如何訪問此值noNamespaceSchemaLocation?我正在使用默認的SAX解析器。

@Override 
public void startElement(String uri, String localName, 
         String name, Attributes attributes) 
{ .... } 

謝謝。

回答

1

這一切都取決於你正在工作的工具/庫類型(基本的SAXParser?Xerces?JDom?...)但是你想要的是由URI定義的namspace中的屬性「noNamespaceSchemaLocation」的值「http://www.w3.org/2001/XMLSchema-instance」

在JDOM

,這將是這樣的:

Element view = ...; // get the view element 
String value = view.getAttributeValue("noNamespaceSchemaLocation", Namespace.getNamespace("http://www.w3.org/2001/XMLSchema-instance")); 
+0

謝謝,基本SAX解析器,我調整我的問題,但「屬性」不包含這個值...? – codevour 2012-02-28 14:13:24

+0

哼,我暫時還沒有用過SAXParser,但屬性應該包含你正在查找的值。爲了找到正確的值,你需要找到屬性的索引,爲此,你需要屬性名稱爲「noNamespaceSchemaLocation」的QName,即:「{http://www.w3.org/2001/ XMLSchema-instance} noNamespaceSchemaLocation「(刪除QName中的所有空格) – 2012-02-28 14:35:52

+0

謝謝,錯誤在於它只能使用命名空間訪問,所以我必須使用」xsi:noNamespaceSchemaLocation「和前綴」xsi「。謝謝。 – codevour 2012-02-28 14:38:22