【发布时间】:2015-05-20 06:42:58
【问题描述】:
我正在尝试从以下 .xml 文件中更改 model 属性的值。
<MTConnectDevices xmlns="urn:mtconnect.org:MTConnectDevices:1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mtconnect.org:MTConnectDevices:1.1 http://www.mtconnect.org/schemas/MTConnectDevices_1.1.xsd">
<Header version="1.1" sender="Company MTConnect Instance" creationTime="2010-08-26T19:00:47-07:00" instanceId="2" bufferSize="131072" />
<Devices>
<Device name="XX" iso841Class="1" uuid="000" id="id1001">
<Description manufacturer="name" serialNumber="Serial Number" model="UNDEFINED">
</Description>
这是我尝试过的,但它不起作用,因为它没有改变 model 的值。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(mypath);
var nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("ns", xmlDoc.DocumentElement.NamespaceURI);
var node = xmlDoc.SelectSingleNode("/ns:MTConnectDevices/ns:Header/ns:Devices/ns:Device/ns:Description", nsmgr);
node.Attributes["model"].Value = "changed";
xmlDoc.Save(mypath);
谁能帮我解决这个问题?
【问题讨论】:
-
它在什么方面不起作用?
-
它没有改变值。
-
您是否在调试器中检查了
node的状态,或者只是文件中的值没有被更新?将/MTConnectDevices更改为//MTConnectDevices有什么不同吗? -
在
node.Attributes["model"].Value = "newvalue";我得到了NullReferenceException。这意味着它没有正确获取节点? -
您是否尝试更改 MTConnect 流本身的值?如果是这样,那就违背了 MTConnect 的目的。无论如何,如果您仍然对 MTConnect 感兴趣,我建议您关注 area51.stackexchange.com/proposals/80667/internet-of-things,以便有更好的地方发布有关 MTConnect 的问题。
标签: c# .net xml xmldocument