- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我希望能够做这样的事情:
//buildArgs
XmlNode buildArgs = doc.CreateElement("buildArgs");
XmlAttribute buildArgsAtt = doc.CreateAttribute("-D:project.rc_file");
但我得到了休闲错误:
An unhandled exception of type 'System.ArgumentException' occurred in System.Xml.dll
Additional information: Invalid name character in '-D'. The '-' character, hexadecimal value 0x2D, cannot be included in a name.
但是我没有选择格式。我正在尝试自动执行将新元素添加到 cruisecontrol.net 配置文件 (ccnet.config) 的过程。所以我需要把破折号放在那里。
这是我的代码:
//create new instance of XmlDocument
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = false;
//load from file
doc.Load(filename);
//create node and add value
XmlNode projet = doc.CreateNode(XmlNodeType.Element, "projet", null);
XmlAttribute projetAtt = doc.CreateAttribute("name");
projetAtt.Value = projectName + " " + oracleVersion;
projet.Attributes.SetNamedItem(projetAtt);
...
//buildArgs
XmlNode buildArgs = doc.CreateElement("buildArgs");
XmlAttribute buildArgsAtt = doc.CreateAttribute("-D:project.rc_file");
buildArgsAtt.Value = projectName + ".rc";
XmlAttribute buildArgsAtt2 = doc.CreateAttribute("-D:project.svn_trunk_ver");
buildArgsAtt2.Value = trunkNb;
XmlAttribute buildArgsAtt3 = doc.CreateAttribute("-D:project.svn_trunk");
buildArgsAtt3.Value = trunkPath;
buildArgs.Attributes.SetNamedItem(buildArgsAtt);
buildArgs.Attributes.SetNamedItem(buildArgsAtt2);
buildArgs.Attributes.SetNamedItem(buildArgsAtt3);
//add to parent node
projet.AppendChild(nodeWD);
projet.AppendChild(category);
projet.AppendChild(trigger);
trigger.AppendChild(intTrigger);
projet.AppendChild(sourcecontrol);
sourcecontrol.AppendChild(trunkUrl);
sourcecontrol.AppendChild(workingDirectory);
projet.AppendChild(tasks);
tasks.AppendChild(nant);
nant.AppendChild(targetList);
targetList.AppendChild(target);
nant.AppendChild(buildArgs);
//add to elements collection
doc.DocumentElement.AppendChild(projet);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
settings.Encoding = Encoding.UTF8;
using (XmlWriter writer = XmlTextWriter.Create(filename, settings))
{
doc.Save(writer);
}
我检查了这个:Using - in XML element name和其他人,但我没有找到我可以使用的答案。
-编辑-
这是 ccnet.config 的一个例子: http://ccnet.sourceforge.net/CCNET/Configuring%20the%20Server.html
谢谢!
最佳答案
你根本做不到,那不是一个有效的属性名。不过,您可以将其存储为属性值 - 只需使用 XML 允许的名称即可。
我很确定 CruiseControl.Net 也没有这样做,因为它无法在此类文件上使用内置解析器。
编辑:它是元素值(也称为内容)。设置如下:
var buildArgs = doc.CreateElement("buildArgs");
buildArgs.Value = "-D:project.rc_file";
关于c# - C# 中 XmlAttribute 开头的破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784952/
我正在将我的 xml 反序列化为 C# 类。
从 MusicBrainz REST 服务,我得到以下 xml: ... 使用 WCF 和 XmlSerializationFormat,我能够获取类型和 ID 属性...但是如何获取“e
我想在派生类中编码 XMLAttribute,但我遇到了一些问题。 我有 2 个派生类和 1 个父类(super class),如下所示: public class Dog extends Anima
我在以下类(class)中收到以下错误: 无法序列化 DataObjects.Ingredient 类型的成员“成分”。 XmlAttribute/XmlText 不能用于编码复杂类型。 关于为什么的
在我的网络服务上,我将变量定义为@XmlAttribute: @XmlAttribute protected String domain; 但是当我通过 SoapUi 进行查询时,它显示为 XML 元
我在使用 XmlSerializer 生成以下 XML 结构时遇到问题: This is root. Otha. This Is Circ
例如我有一个简单的类 class SomeCfg { [XmlAttribute("ArchivePath")] public string ArchivePath { get; se
我正在尝试使用 javax.xml.bind.annotation 将属性添加到简单类型(在本例中为 String) 所以我想要这个 data 如果 stuff 是 'myObj' 中的字符串,这可能
我想将类 Ticket 序列化为 xml。由于我的自定义字段类,我收到错误:“XmlAttribute/XmlText 不能用于编码复杂类型”。 自定义字段的 xml 应该是这样的(属性数组是 nes
我有很多属性要使用 XmlSerializer 进行序列化。我需要用 [XmlAttribute] 标记每个(简单的)属性,以使输出更短一些。我想知道是否有更简单的方法来做到这一点。有没有办法让它成为
我正在寻找谁来自定义属性的序列化。我以为这会很简单,但我无法按照我想要的方式实现我想做的事情。 所以这是一个简单的例子: 类定义: Class MyClass { [XmlAttribute(
我有一个 XML 文件,它需要一个元素中的 3 个属性。如何按照我的意愿制作街道, zip 和城市属性的顺序? @XmlType(name="Street) @XmlRootElement(nam
我正在制作 SOAP Web 服务以及何时使用 @XmlAttribute(name = "asd:resource") private String asdResource; 我无法在 SoapUI
这个问题已经有答案了: How to change a field name in JSON using Jackson (4 个回答) 已关闭 7 年前。 这似乎是一个奇怪的问题,但这是由于旧版前端
我有一个 XML 文件,它需要在一个元素中有 3 个属性。如何使街道、邮政编码和城市属性的顺序符合我的要求? @XmlType(name="Street) @XmlRootElement(name
有一个带有这样的字段的光环类: private String description; // a lot of text private long price; private int count
我希望能够做这样的事情: //buildArgs XmlNode buildArgs = doc.CreateElement("buildArgs"); XmlAttribute buildAr
我是 JAXB 的新手,在从 XML 到 Java 类实例的转换方面遇到了麻烦。 我有以下 XML: client Greeting 1000 Your Conne
假设我有以下代码,并希望序列化为代码下方的 XML: class Human { [XmlElement("OwnedObjects")] public List ownedObjec
这是我的属性(property): /// /// The Business Unit /// [XmlAttribute("ows_Business_x0020_
我是一名优秀的程序员,十分优秀!