編輯:我認爲原因是因爲「UniversalShipment」xmlns。有一個鏈接,但我刪除它的機密性。我無法通過該節點。幫助我在ChooseSingleNode時遇到錯誤
這是我的XML。
<UniversalInterchange xmlns="" version="1.0">
<Header>
<SenderID>1</SenderID>
<RecipientID>2</RecipientID>
</Header>
<Body>
<UniversalShipment xmlns="" version="1.1">
<Shipment>
<CustomizedFieldCollection>
<CustomizedField>
<Key>Documents Checked</Key>
<DataType>Boolean</DataType>
<Value>false</Value>
</CustomizedField>
<CustomizedField>
<Key>Date Completed</Key>
<DataType>DateTime</DataType>
<Value></Value>
</CustomizedField>
</CustomizedFieldCollection>
</Shipment>
</UniversalShipment>
</Body>
</UniversalInterchange>
當我得到單節點時,我收到null。但是,當我嘗試「身體」只在單個節點它添加到底部。如果我試圖將其添加到UniversalShipment「Body/UniversalShipment」,它會遇到錯誤。
XmlDocument doc=new XmlDocument();
doc.Load("sample.xml");
XmlNode customizedNode = doc.CreateElement("CustomizedField");
XmlNode keyNode = doc.CreateElement("Key");
XmlNode dataNode = doc.CreateElement("DataType");
XmlNode valueNode = doc.CreateElement("Value");
keyNode.InnerText = "hi";
dataNode.InnerText = "hello";
valueNode.InnerText = "bye";
customizedNode.AppendChild(keyNode);
customizedNode.AppendChild(dataNode);
customizedNode.AppendChild(valueNode);
doc.DocumentElement.SelectSingleNode("Body/UniversalShipment/Shipment/CustomizedFieldCollection").AppendChild(customizedNode);
doc.Save("sample.xml");
從根開始表達或「/」文檔元素是這樣的:UniversalInterchange/Body/UniversalShipment/Shipment/CustomizedFieldCollection。我沒有嘗試過,但它應該工作。 – seesharpconcepts
@seesharpconcepts「UniversalInterchange/Body/UniversalShipment/Shipment/CustomizedFieldCollection」我仍然遇到錯誤。我認爲這是因爲xmlns。有一個鏈接提供,但我刪除它。我無法顯示給你的鏈接。 – Reynan
上面的Xpath在沒有聲明名稱空間的情況下工作。初始化XmlNamespaceManager並將其作爲參數傳遞給Select方法。鏈接到msdn:https://msdn.microsoft.com/en-us/library/h0hw012b(v=vs.110).aspx – seesharpconcepts