0
我需要向我的WP7應用程序的Web服務發送XML消息,但我沒有經驗。WP7 - 構建XML消息
這是使Web服務需要我發送XML格式:
<pfpMessage version='1.5'>
<header>
<source>
<component type="pfsvc" role="master">
<host ip="" hostname="" serverId=""/>
</component>
</source>
</header>
<request request-id='1288730909' async='0' response-url='' language='en'>
<phoneAppValidateDeviceTokenRequest >
<phoneAppContext >
<guid>...</guid>
<deviceToken >...</deviceToken>
<version >1.0.0</version>
</phoneAppContext>
<validationResult >yes</validationResult>
</phoneAppValidateDeviceTokenRequest>
</request>
</pfpMessage>
這是代碼的一小部分,我已經寫了:
XDocument doc = new XDocument();
// start message
XElement root = doc.Element("pfpMessage");
root.SetAttributeValue("version", 1.5);
doc.Add(root);
// message header
XElement header = doc.Element("header");
root.Add(header);
XElement source = doc.Element("source");
header.Add(source);
XElement component = doc.Element("component");
component.SetAttributeValue("type", "pfsdk");
source.Add(component);
XElement element = doc.Element("host");
element.SetAttributeValue("ip", pfAuthParams.IpAddress);
element.SetAttributeValue("hostname", pfAuthParams.Hostname);
component.Add(element);
的部分問題在於SetAttributeValue函數保持拋出異常,即使它看起來與MSDN示例完全相同。
這是構建符合格式的XML消息的正確方法嗎?
編輯:這將導致一個InvalidOperationException:
XDocument doc = new XDocument(
new XElement("pfpMessage",
new XAttribute("version", 1.5),
new XElement("header",
new XElement("source",
new XElement("component",
new XAttribute("type", "pfsdk"),
new XElement("host",
new XAttribute("ip", pfAuthParams.IpAddress),
new XAttribute("hostname", pfAuthParams.Hostname)
)
)
)
)
),
new XElement("request",
new XAttribute("request-id", y),
new XAttribute("async", 0),
new XAttribute("response-url", ""),
new XAttribute("language", "en"),
new XElement("phoneAppValidateDeviceTokenRequest",
new XElement("phoneAppValidateContext"),
new XElement("guid", (Application.Current as App).SharedGUID),
new XElement("deviceToken", (Application.Current as App).SharedURI)
),
new XElement("version", "1.0.0")
)
);
感謝您的幫助!你介意看看我的編輯?我得到一個InvalidOperationException並且無法弄清楚。 – SirJames 2012-07-26 20:03:34
@SirJames:*當您在帖子中提及某個例外時,總是*包含例外的全部細節。理想情況下是完整的堆棧跟蹤,但至少*消息。 – 2012-07-26 20:04:13
@SirJames :(在這種情況下,我可以解決這個問題,但是如果你發佈了這個消息,會更簡單)。你提供了兩個頂層元素('pfpMessage'和'request')。一個XML文檔只能有一個根元素。你應該在'header'元素的同一級別構造'request'元素。 – 2012-07-26 20:05:11