他的結構是這樣子的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
soap-env:envelope
xmlns:soap-env
=
""
>
<
soap-env:header
>
<
transactionid
>110000000001
<
servicetype
>/sms/mt
<
soap-env:body
>
<
gatewayid
>ynmc
<
dstid
>15125664368
<
srcid
>099879
<
feeid
>15125664368
<
linkid
/>
<
msgcontent
>哈哈
<
serviceid
>ayn3913101
<
msgid
>1234
<
committime
>201311130101022
比如我們要取msgcontent節點下的內容,我們直接去取是會報錯的。比如:
12
3
xmldocument doc =
new
xmldocument();
doc.load(
"test.xml"
);
string
value = doc.selectsinglenode(
"/soap-env:envelope/soap-env:body/msgcontent"
).innertext;
這裡value會發生異常,如圖:
根據錯誤提示,已經提醒我們需要命名空間管理器。
1
2
3
4
5
6
7
8
9
10
xmldocument doc =
new
xmldocument();
doc.load(
"test.xml"
);
xmlelement root = doc.documentelement;
string
namespace = root.namespaceuri;
xmlnamespacemanager nsmgr =
new
xmlnamespacemanager(doc.nametable); ;
nsmgr.addnamespace(
"soap-env"
, namespace);
string
value = doc.selectsinglenode(
"/soap-env:envelope/soap-env:body/msgcontent"
, nsmgr).innertext;
console.writeline(value);
//輸出:哈哈
這時我們加上了xmlnamespacemanage進行處理,成功的獲取到了我們想要的內容。
PHP解析XML,讀取節點內容
php與xml聯絡緊密,下面是乙個較簡單的解析xml節點資料的例子,示例中自定義有乙個xml樣例檔案 通過php將依次讀取出xml節點中的id name和email資料,是讀取較大的xml檔案的前提,新手的話,那就更應該參考了 01 02 定義乙個xml樣例檔案 03 xml string 1.0 ...
C 讀取帶namespace的xml內容
今天做乙個第三方資料對接,從第三方系統獲取一些內容之後進行處理。不過遇到了乙個問題,返回的內容是包含在xml節點中的,要從xml節點中把有效內容提取出來,因為xml格式有些特殊,用之前的xmldocument的一些 有報錯。xml內容如下 有效內容.帶了namespace,因此需要對原有的 進行一些...
C 關於帶命名空間的xml解析
本意是想獲取所有的xml標籤的,結果為了單個標籤的獲取查了挺久 xml文件 1hhh bbb第一步,載入xml文件 string uri dd.xml xmlreader xr xmlreader.create uri xmldocument doc new xmldocument doc.load...