尝试解析在C#中使用Axis Java Web Service生成的XML文件时遇到了一些问题。该文件具有以下格式:
<ns:getAcctsDetailResponse xmlns:ns="http://paymentdata.com">
<ns:return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ax21="http://paymentdata.com/xsd" xsi:type="ax21:AcctsDetail">
<ax21:Status>15</ax21:Status>
<ax21:Name>John James</ax21:Name>
</ns:return>
</ns:getCustomerAcctsDetailResponse>
我使用下面的代码尝试访问所需的元素,但得到以下错误:
':'字符,十六进制值0x3A,不能包含在名称中。
XDocument xDoc = XDocument.Load(xml);
string accountName= xDoc.Root.Element("ns:return").Element("ax21:Name").Value;
非常感谢您的帮助。
答案 0 :(得分:0)
我看到两个问题:
首先,XML格式错误。 ns:getAcctsDetailResponse
开场代码与ns:getCustomerAcctsDetailResponse
结束代码不匹配。也许这是一个错字?
其次,您需要为命名空间执行一些特殊操作。尝试这样的事情:
XNamespace ns = "http://paymentdata.com";
XNamespace ax21 = "http://paymentdata.com/xsd";
XDocument xDoc = XDocument.Load(xml);
string accountName = xDoc.Root.Element(ns + "return")
.Element(ax21 + "Name").Value;