我有嘗試讀取下面的XML C#程序,但無法讀取任何元素:爲什麼有一個xmlns導致我的C#程序不讀取XML?
<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments Here -->
<FileFeed
xmlns="http://www.mycompany.com/schemas/xxx/FileFeed/V1"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.somecompany.com/schemas/xxx/FileFeed/V1
FileFeed.xsd"
RecordCount = "1">
<Object>
<ID>PAMSMOKE110113xxx</ID>
<CorpID>12509</CorpID>
<AnotherID>201654702345</AnotherID>
<TimeStamp>2013-09-03</TimeStamp>
<Type>Some Type</Type>
<SIM_ID>89011704258012600767</SIM_ID>
<Code>ZZZ</Code>
<Year>2013</Year>
</Object>
</FileFeed>
通過上述XML我的C#程序是無法讀取的任何元素。對於實例ID元始終爲NULL。
現在,如果我只是從上面的XML中刪除第一個xmlns,我的程序可以讀取所有元素,沒有任何問題。問題是我必須以給定的格式處理XML文件,並且不能更改文件格式。我的程序讀取下面的XML就好了:注意行xmlns =「http://www.mycompany.com/schemas/xxx/FileFeed/V1」被刪除。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Comments Here -->
<FileFeed
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.somecompany.com/schemas/xxx/FileFeed/V1
FileFeed.xsd"
RecordCount = "1">
<Object>
<ID>PAMSMOKE110113xxx</ID>
<CorpID>12509</CorpID>
<AnotherID>201654702345</AnotherID>
<TimeStamp>2013-09-03</TimeStamp>
<Type>Some Type</Type>
<SomeNumber>89011704258012600767</SomeNumber>
<Code>ZZZ</Code>
<Year>2013</Year>
</Object>
</FileFeed>
我意識到我沒有發表任何代碼,但只是想知道我能是具有什麼可能的問題,在這裏簡單地移除的xmlns線解決一切?
這是實際的網址嗎?它似乎在中間有一個空格,如果它應該在這裏嘗試用'%20'代替它。 – SJuan76
-1:有很多重複的內容 - 搜索「namespace XML」以找到它們。即http://stackoverflow.com/questions/2340411/use-linq-to-xml-with-xml-namespaces/2340497#2340497(如果使用LINQ-toXML)。 –
你如何閱讀XML? –