當使用SAX解析Java中的XML文件時,參數本地名稱和qname在SAX方法(如startElement(String uri, String localName,String qName, Attributes attributes)
)中有什麼區別?localname和qname有什麼區別?
26
A
回答
0
默認情況下,XML讀取器將在開始和結束處理程序中報告名稱空間中屬於每個元素的名稱空間URI和localName。
考慮下面的例子:
<html:hr xmlns:html="http://www.w3.org/1999/xhtml"/>
在缺省SAX2名稱空間處理,XML讀取器將報告與所述命名空間URI http://www.w3.org/1999/xhtml和的localName hr的開始和結束元素事件。大多數XMLReader實現也報告原始的qName html:hr,但該參數可能只是一個空字符串(除了不在名稱空間中的元素)。
12
42
限定名稱包含名稱空間前綴和本地名稱:att1
和foo:att2
。
示例XML
<root
xmlns="http://www.example.com/DEFAULT"
att1="Hello"
xmlns:foo="http://www.example.com/FOO"
foo:att2="World"/>
Java代碼:
ATT1
屬性沒有命名空間前綴不拿起默認的命名空間。這意味着雖然root
元素的名稱空間爲"http://www.example.com/DEFAULT"
,但att1
屬性的名稱空間爲""
。
int att1Index = attributes.getIndex("", "att1");
attributes.getLocalName(att1Index); // returns "att1"
attributes.getQName(att1Index); // returns "att1"
attributes.getURI(att1Index); // returns ""
ATT2
int att2Index = attributes.getIndex("http://www.example.com/FOO", "att2");
attributes.getLocalName(att2Index); // returns "att2"
attributes.getQName(att2Index); // returns "foo:att2"
attributes.getURI(att2Index); // returns "http://www.example.com/FOO"
相關問題
- 1. 爲什麼qName工作和LocalName沒有?
- 2. localName()和name()。localName()之間有什麼區別?
- 3. 有什麼區別`和$(Bash中有什麼區別?
- 4. 有什麼區別? :和||
- 5. &&和||有什麼區別?
- 6. 「/」和「/ *」有什麼區別?
- 7. 有什麼區別:。!和:r!?
- 8. ==和===有什麼區別?
- 9. Appender和〜有什麼區別?
- 10. $ @和$ *有什麼區別?
- 11. is和=有什麼區別?
- 12. #.00和#。##有什麼區別?
- 13. `==`和`is`有什麼區別?
- 14. '=='和'==='有什麼區別?
- 15. /和/#/有什麼區別?
- 16. | 0和~~有什麼區別?
- 17. `&`和`ref`有什麼區別?
- 18. ==和===有什麼區別?
- 19. ==和===有什麼區別?
- 20. `{}`和`[]`有什麼區別?
- 21. JavaScript和=== ===有什麼區別?
- 22. difftime和' - '有什麼區別?
- 23. =和==有什麼區別?
- 24. xtype和別名有什麼區別?
- 25. Mixpanel:識別()和people.identify()有什麼區別?
- 26. 有什麼區別
- 27. 有什麼區別
- 28. 有什麼區別?
- 29. 有什麼區別?
- 30. 有什麼區別?
問題:將QNAME是前綴+ ':' +本地名稱,或會是 '{' +命名空間URI + '}' +本地名稱?像這樣:'{http://www.w3.org/1999/xhtml} hr'。因爲前綴將元素綁定到名稱空間,但其實際字符串應該沒有任何重要性。 Qualified =名稱空間和本地名稱。 –
它將是'prefix +「:」+ localname'。 (但是,通過查看Javadoc或解析器的輸出,您可以發現這一點 - 爲什麼要問這裏?) –