XML-节点的代码更改值-显示的代码如何正确?
XML-Code Change Value of Node - How is the displayed Code correct?
我需要使用 XMLDocument 在 C# 中编写一个 XML 文件。我提取所需的 XML-文件,只需要插入一些我需要添加的元素。
预期输出应如下所示:
<service>
<coding>
<system value="https://somethingichanged" />
<code value="myvalue" />
</coding>
</service>
但是,我的输出看起来像这样:
<service>
<coding>
<system>https://somethingichanged</system>
<code>myvalue</code>
</coding>
</service>
这是我的代码:
string[] tag = new string[] { "service", "coding", "system", "code", "http://URI"};
XmlElement Service = m_XMLDoc.CreateElement(tag[0], tag[4]);
XmlElement Coding = m_XMLDoc.CreateElement(tag[1], tag[4]);
Service.AppendChild(Coding);
//Fill Element
XmlNode System = m_XMLDoc.CreateNode(XmlNodeType.Element, tag[2], tag[4]);
XmlNode Code = m_XMLDoc.CreateNode(XmlNodeType.Element, tag[3], tag[4]);
System.InnerText = "https://somethingichanged";
Coding.AppendChild(System);
Code.InnerText = myTSS[i].ToString();
Coding.AppendChild(Code);
正确的代码是什么样的?谢谢!
您应该创建属性,而不是 xml 元素。
所以使用:
System.Attributes.Append( m_XMLDoc.CreateAttribute("value", "https://somethingichanged"));
Code.Attributes.Append( m_XMLDoc.CreateAttribute("value", myTSS[i].ToString()));
而不是
System.InnerText = "https://somethingichanged";
Code.InnerText = myTSS[i].ToString();
.Net LINQ to XML 使得在一条代码语句中实现变得更加容易。
c#
void Main()
{
string[] tag = new string[] { "service", "coding", "system", "code", "http://URI"};
XElement xml = new XElement(tag[0],
new XElement(tag[1],
new XElement(tag[2], new XAttribute("value", tag[4])),
new XElement(tag[3], new XAttribute("value", "myvalue")))
);
}
Output XML:
<service>
<coding>
<system value="http://URI" />
<code value="myvalue" />
</coding>
</service>
我需要使用 XMLDocument 在 C# 中编写一个 XML 文件。我提取所需的 XML-文件,只需要插入一些我需要添加的元素。
预期输出应如下所示:
<service>
<coding>
<system value="https://somethingichanged" />
<code value="myvalue" />
</coding>
</service>
但是,我的输出看起来像这样:
<service>
<coding>
<system>https://somethingichanged</system>
<code>myvalue</code>
</coding>
</service>
这是我的代码:
string[] tag = new string[] { "service", "coding", "system", "code", "http://URI"};
XmlElement Service = m_XMLDoc.CreateElement(tag[0], tag[4]);
XmlElement Coding = m_XMLDoc.CreateElement(tag[1], tag[4]);
Service.AppendChild(Coding);
//Fill Element
XmlNode System = m_XMLDoc.CreateNode(XmlNodeType.Element, tag[2], tag[4]);
XmlNode Code = m_XMLDoc.CreateNode(XmlNodeType.Element, tag[3], tag[4]);
System.InnerText = "https://somethingichanged";
Coding.AppendChild(System);
Code.InnerText = myTSS[i].ToString();
Coding.AppendChild(Code);
正确的代码是什么样的?谢谢!
您应该创建属性,而不是 xml 元素。
所以使用:
System.Attributes.Append( m_XMLDoc.CreateAttribute("value", "https://somethingichanged"));
Code.Attributes.Append( m_XMLDoc.CreateAttribute("value", myTSS[i].ToString()));
而不是
System.InnerText = "https://somethingichanged";
Code.InnerText = myTSS[i].ToString();
.Net LINQ to XML 使得在一条代码语句中实现变得更加容易。
c#
void Main()
{
string[] tag = new string[] { "service", "coding", "system", "code", "http://URI"};
XElement xml = new XElement(tag[0],
new XElement(tag[1],
new XElement(tag[2], new XAttribute("value", tag[4])),
new XElement(tag[3], new XAttribute("value", "myvalue")))
);
}
Output XML:
<service>
<coding>
<system value="http://URI" />
<code value="myvalue" />
</coding>
</service>