Tag: xml

如何为List 实现设置XmlArrayItem元素名称?

我想创建一个自定义XML结构,如下所示: 为了能够做到这一点,我创建了List的实现。 我的代码如下: [XmlRootAttribute(ElementName=”Hotels”)] public class HotelList: List 因为List所持有的类不是名为Hotel而是HotelBasic我的xml就像 如何在不必实现ISerializable或IEnumerable情况下解决这个问题?

如何使用SelectSingleNode获取属性值?

我正在解析一个xml文档,我需要找出gid(属性)值(3810)。 基于SelectSingleNode() 。 我发现找到属性名称和它的值并不容易。 我可以使用此方法还是必须切换到其他方式。 附上是我的代码。 如何使用book obj获取gid的属性值3810 。 谢谢。 我的test.xml文件如下 我写了test.cs如下 public class Sample { public static void Main() { XmlDocument doc = new XmlDocument(); doc.Load(“test.xml”); XmlNode book; XmlNode root = doc.DocumentElement; book = root.SelectSingleNode(“Attributes[AttrDir[@name=’EFEM’]/AttrDir[@name=’Aligner’]/AttrDir[@name=’SequenceID’]/AttrObj[@text=’Slot01′]]”); Console.WriteLine(“Display the modified XML document….”); doc.Save(Console.Out); } } [更新06/10/2010] xml文件是一个复杂的文件。 包括数以千计的gids。 但对于每个Xpath,gid都是独一无二的。 我将xml文件加载到TreeView控件。 this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); 。 发生treeView1_AfterSelect事件时, […]

我永远无法预测XMLReader的行为。 理解的任何提示?

似乎每次我使用XMLReader时,我最终会进行一系列的试验和错误,试图找出我要阅读的内容,而不是我正在阅读的内容与我刚刚阅读的内容。 我总是把它弄清楚,但是在我多次使用之后,我仍然没有牢牢掌握XMLReader在调用各种函数时实际在做什么。 例如,当我第一次调用Read时,如果它读取元素开始标记,它现在是在元素标记的末尾,还是准备开始读取元素的属性? 如果我调用GetAttribute,它是否知道属性的值? 如果我此时调用ReadStartElement会发生什么? 它会完成读取start元素,还是寻找下一个元素,跳过所有属性? 如果我想阅读许多元素怎么办?尝试阅读下一个元素并确定其名称的最佳方法是什么。 将Read继续IsStartElement工作,或者IsStartElement将返回有关我刚读过的元素之后的节点的信息吗? 正如您所看到的,我真的不了解XMLReader在读取的各个阶段所处的位置以及各种读取函数对其状态的影响。 是否有一些我根本没注意到的简单模式? 这是问题的另一个例子(取自回复): string input = “The Terminator” + “Right Arm” + “Left Arm” + “Big Toe” + “”; using (System.IO.StringReader sr = new System.IO.StringReader(input)) { using (XmlTextReader reader = new XmlTextReader(sr)) { reader.WhitespaceHandling = WhitespaceHandling.None; reader.MoveToContent(); while(reader.Read()) { if (reader.Name.Equals(“machine”) && (reader.NodeType == XmlNodeType.Element)) { Console.Write(“Machine […]

如何获取DataSet.ReadXml以将DateTime属性解析为类型化DateTime

我有一个XML字符串,其中包含格式为“dd / MM / yyyy hh:mm:ss”的日期。 我正在使用DataSet.ReadXml()将此XML加载到数据集中。 如何确保此Date作为类型化DateTime存储在DataSet中,以便我可以相应地对其进行排序,格式化和RowFilter。 我的测试工具如下: ASPX页面: Test 代码背后: using System; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Linq; namespace Test { public partial class XmlDateTypeList : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XDocument xDoc = new XDocument( new XElement(“List”, new […]

如何从XML文档中提取XML块?

我想从更大的XML文档中提取一大块XML。 例如,我的XML文档看起来像这样 如果我想提取任何部分。 例如,我希望提取包含属性标记和值中包含的所有内容,我应该如何在C#中执行此操作? 我尝试使用此代码,但它似乎没有做到这一点。 XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(inputXML); Console.WriteLine(inputXML); string strOut = “”; XmlNode node = xdoc.DocumentElement.ParentNode; XmlNodeList nodeList = node.ChildNodes; for (int n = 0; n < nodeList.Count; n++) { Console.WriteLine(nodeList[n].Name); if (nodeList[n].Name == "FIRSTNODE") { strOut = nodeList[n].OuterXml.ToString(); Console.WriteLine(strOut.Length.ToString()); return strOut; } }

如何删除C#4.0中指定的xmlnode的所有子节点?

这是我的xml。 line1 line2 line1 line2 我的C#代码是 XmlDocument xd = new XmlDocument(); xd.Load(@”H:\Sample-8-final.xml”); XmlNodeList pnodelist = xd.GetElementsByTagName(“page”); XmlNodeList xdChildNodeList = xd.ChildNodes; for (int i = 0; i < pnodelist.Count; i++) { XmlNode pageNode = pnodelist[i]; foreach (XmlNode xxNode in pageNode.ChildNodes) { if (xxNode.Name.ToString().Trim().Equals("Paragraph")) { foreach (XmlNode yyNode in xxNode.ChildNodes) { yyNode.ParentNode.RemoveChild(yyNode); } } } xd.Save(@"H:\Sample-8-final_1.xml"); 我的必需输出是 […]

从XML字符串生成XML模式

我有一个XML字符串,我想加载到Excel工作表。 我几乎让它工作,但我需要能够生成传递给XmlMaps.Add的架构: String xml; //This is already populated with an XML String; I want to get the schema based on the xml structure Workbook w = Globals.ThisAddIn.Application.ActiveWorkbook; w.XmlMaps.Add(***Need schema here***, “root node”); 是否可以在此以编程方式生成架构? 我从Web服务接收此XML字符串。

使用SchematronvalidationXML

我正在尝试使用SchematronvalidationXML文件,这比XSD更复杂。 我google了很多,最好的事情是这个微软网站 。 但这只展示了如何使用NMatrix.SchematronvalidationXSD,这不是我需要的。 我有NMatrix.Schematron DLL但我不知道如何使用它们。 有谁知道如何使用它?

如何使用数字字符实体而不是问号XmlDocument.Save()到encoding =“us-ascii”?

我的目标是在不丢失Unicode字符的情况下获得XML的二进制缓冲区( MemoryStream.ToArray()将在这种情况下产生byte[] )。 我希望XML序列化程序使用数字字符引用来表示在ASCII中无效的任何内容。 到目前为止,我有: using System; using System.IO; using System.Text; using System.Xml; class Program { static void Main(string[] args) { var doc = new XmlDocument(); doc.LoadXml(““∞π””); using (var buf = new MemoryStream()) { using (var writer = new StreamWriter(buf, Encoding.ASCII)) doc.Save(writer); Console.Write(Encoding.ASCII.GetString(buf.ToArray())); } } } 上面的程序产生以下输出: $ ./ConsoleApplication2.exe ???? 我想通了如何告诉XmlDocument.Save()使用encoding=”us-ascii” -by将TextStream.Encoding设置为Encoding.ASCII TextStream.Encoding 。 文档说明The […]

VS中的强制文档(2010)

我只是在搜索如何获取未记录的每个function/成员的errors/warning 。 我很确定我设法在我的一个项目上做到这一点,但无法在我的工作站上找到如何做到这一点。 我已经研究过project道具,解决方案道具,但无法找到它。 我一定错过了什么,或者我可以在家里做一个扩展。 或者也可能是因为我目前正在开发一个VB.Net项目,而不是一个C#项目。 C#和VB之间的行为发生了很大的变化。 谷歌并没有帮助我太多… 编辑:一个小的截图,用法语,抱歉。 所以有些翻译:“编译器”是Build Tab Avertissements = Warning 谢谢