C# 在c中更改xml值#
我从昨天开始就在做这个。我有一个XML文件,看起来像这样C# 在c中更改xml值#,c#,xml,C#,Xml,我从昨天开始就在做这个。我有一个XML文件,看起来像这样 <catalog> <captureInfo> <row>5</row> <col>5</col> </captureInfo> <patientInfo> <name>XYZ</name> <detail>details here</detail>
<catalog>
<captureInfo>
<row>5</row>
<col>5</col>
</captureInfo>
<patientInfo>
<name>XYZ</name>
<detail>details here</detail>
</patientInfo>
<imageData>
<r0c0>
<contrastFlag>true</contrastFlag>
</r0c0>
<r0c1>
<contrastFlag>true</contrastFlag>
</r0c1>
</imageData>
</catalog>
谁能告诉我哪里出了问题,还有什么更好/更快的方法吗?首先,您的XML格式不正确,结尾应该与“catalog”匹配。为什么不这样做:
string xml = @"<catalog>
<captureInfo>
<row>5</row>
<col>5</col>
</captureInfo>
<patientInfo>
<name>XYZ</name>
<detail>details here</detail>
</patientInfo>
<imageData>
<r0c0>
<contrastFlag>true</contrastFlag>
</r0c0>
<r0c1>
<contrastFlag>true</contrastFlag>
</r0c1>
</imageData>
</catalog>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);
xdoc.SelectSingleNode("//catalog/imageData/r0c0/contrastFlag").InnerText = "false";
stringxml=@”
5.
5.
XYZ
这里的细节
真的
真的
";
XmlDocument xdoc=新的XmlDocument();
LoadXml(xml);
xdoc.SelectSingleNode(“//catalog/imageData/r0c0/contractFlag”).InnerText=“false”;
首先,您的XML格式不正确,结尾应该与“目录”匹配。为什么不这样做:
string xml = @"<catalog>
<captureInfo>
<row>5</row>
<col>5</col>
</captureInfo>
<patientInfo>
<name>XYZ</name>
<detail>details here</detail>
</patientInfo>
<imageData>
<r0c0>
<contrastFlag>true</contrastFlag>
</r0c0>
<r0c1>
<contrastFlag>true</contrastFlag>
</r0c1>
</imageData>
</catalog>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);
xdoc.SelectSingleNode("//catalog/imageData/r0c0/contrastFlag").InnerText = "false";
stringxml=@”
5.
5.
XYZ
这里的细节
真的
真的
";
XmlDocument xdoc=新的XmlDocument();
LoadXml(xml);
xdoc.SelectSingleNode(“//catalog/imageData/r0c0/contractFlag”).InnerText=“false”;
以下是一种使用LINQ替换所有实例的方法。我刚刚写了一个新文件来保存源代码
StreamReader stream = new StreamReader(@"c:\test.xml");
XDocument doc = XDocument.Load(stream);
IEnumerable<XElement> flags = doc.Descendants("contrastFlag");
foreach (XElement e in flags)
{
e.Value = "false";
}
doc.Save(@"c:\test2.xml");
StreamReader-stream=newstreamreader(@“c:\test.xml”);
XDocument doc=XDocument.Load(流);
IEnumerable flags=文档子体(“对比标志”);
foreach(标志中的元素e)
{
e、 Value=“false”;
}
doc.Save(@“c:\test2.xml”);
以下是一种使用LINQ替换所有实例的方法。我刚刚写了一个新文件来保存源代码
StreamReader stream = new StreamReader(@"c:\test.xml");
XDocument doc = XDocument.Load(stream);
IEnumerable<XElement> flags = doc.Descendants("contrastFlag");
foreach (XElement e in flags)
{
e.Value = "false";
}
doc.Save(@"c:\test2.xml");
StreamReader-stream=newstreamreader(@“c:\test.xml”);
XDocument doc=XDocument.Load(流);
IEnumerable flags=文档子体(“对比标志”);
foreach(标志中的元素e)
{
e、 Value=“false”;
}
doc.Save(@“c:\test2.xml”);
您需要更改contrastFlag
非r0c0
的值。使用XDocument
和Linq,或者仅仅使用XPath,您可能会有更好的运气<代码>变量节点=doc.GetElementsByTagName(“对比标志”)然后foreach该列表?您的XML无效-它以catalog
元素开始,并尝试以capture
元素结束。请说明如何将XML示例加载到doc
object.doc.Load(“nameofxmlfilw.XML”);您需要更改contrastFlag
的值,而不是r0c0
。使用XDocument
和Linq,或者仅仅使用XPath,您可能会有更好的运气<代码>变量节点=doc.GetElementsByTagName(“对比标志”)然后foreach该列表?您的XML无效-它以catalog
元素开始,并尝试以capture
元素结束。请说明如何将XML示例加载到doc
object.doc.Load(“nameofxmlfilw.XML”);