Tag: xml

提供了XmlNamespaceManager,但仍然需要“Namespace Manager或XsltContext”

我正在尝试阅读以下内容并在其中选择一个节点 。 XmlDocument document = new XmlDocument(); document.Load(Server.MapPath(“order.xml”)); XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable); manager.AddNamespace(“ns1”, “http://xxxxxx Some URL XXXX”); query = “/ns1:OrderInfo/pricing”; XmlNodeList nodeList = document.SelectNodes(query); 但它总是给“需要命名空间管理器或XsltContext” 正如你在上面看到的那样,我使用XmlNamespaceManager添加命名空间,但仍然提供错误请任何帮助

如何在xml中编写CData

我有一个像xml: 我正在写数据,如: XmlNode xnode = xdoc.SelectSingleNode(“entry/entry_status”); xnode.InnerText = “” ; 但它改变了“<”到CDATA的“&lt;”。 请告诉我如何将上面的xml中的值填充为CData格式。 我知道我们可以像以下一样创建CDATA: XmlNode itemDescription = doc.CreateElement(“description”); XmlCDataSection cdata = doc.CreateCDataSection(“hello world”); itemDescription.AppendChild(cdata); item.AppendChild(itemDescription); 但我的过程是读取xml的节点并更改其值而不是附加在其中。 谢谢

C#Linq to XML检查元素是否存在

我有一个XML文档如下: “+447528349828” “09/06/24 13:35:01” “Stop” “+447528349828” “09/06/24 13:35:01” “Stop” 我正在尝试检查文档中是否存在父SMS节点的数字子节点(出于validation目的,以避免插入重复数据)。 关于潜在解决方案的任何建议? 编辑:元素将与输入字符串进行比较。 例如if(inputNumber == xmlDocNumber){//不插入新元素}

获取xpath函数的问题end-with()工作,而contains()工作正常

我正在尝试获取具有以某个id结尾的属性的标记。 喜欢 我希望得到id以“Country”结尾的跨度 我尝试以下xpath //span[ends-with(@id,’Country’)]但我得到以下exception “需要命名空间管理器或XsltContext。此查询具有前缀,变量或用户定义的函数。” 奇怪的是,包含的工作正常,所以下面的xpath工作//span[contains(@id,’Country’)] 任何想法为什么会这样? 谢谢

IRS-A2A BulkRequestTransmitter消息未正确格式化和/或无法解释

尝试通过BulkRequestTransmitter Web服务提交时,我收到以下错误。 对于此消息,组合指南不太有用,当我将SOAP XML与Composition Guide中的SOAP进行比较时,它们似乎是一对一的。 我希望另一组眼睛能够看到问题所在。 消息格式不正确和/或无法解释。 请查看位于https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information的“AIR提交组合和参考指南”第3节中概述的XML标准。 -Return-AIR-Program ,更正任何问题,然后重试。 我试过的: 尝试在SOAP信封中提交(和不提供)空格。 尝试使用XML格式的表单数据XML进行提交。 尝试使用base64string格式的表单数据提交(因为此提交是)。 在签名元素中添加了ds前缀。 使用此SOpost以便为Signature元素添加前缀。 添加了“漂亮打印”格式的表格数据,并根据更新的作文指南(v4.2)添加。 复制组合指南第10.3节中概述的BulkTransmitterService请求的MIME格式。 创建了两个解决方案:1。)手动创建SOAP请求所需的XML并通过HttpWebRequest对象发送; 2.)通过导入到项目的WSDL作为Service Reference发送提交请求,使用自定义编码器进行GZip and Mtom Encoding并手动创建SOAP状态请求所需的XML(通过HttpWebRequest发送)。 更新#1 根据一些新增内容更新了请求。 在签名元素中添加了ds前缀。 添加了“漂亮打印”格式的表格数据,并根据更新的作文指南(v4.2:第5.4.2节)添加。 更新#2 我开始在Visual Studio的新实例中手动创建SOAP .xml文件,根据需要导入模式引用。 我在任何类型的应用程序创建之外这样做 。 通过这样做,我能够在我通过我的应用程序创建的SOAP找到一些额外的错误(感谢intellisense!) 。 我发现的错误是在Manifest XML中,因为它们不符合IRS模式。 我将在接下来的24小时内查看这些内容并进行相应更新。 urn:MailingAddressGrp应该有一个urn:USAddressGrp或urn:ForeignAddressGrp 。 那个孩子应该包含适当的地址元素。 我的代码目前缺少urn:MailingAddressGrp的直接子代urn:MailingAddressGrp 。 Form1094C_Request_[TCC]_yyyyMMddThhmmssfffZ.xml urn1:DocumentSystemFileNm的值不正确。 我还不完全确定它应该是什么。 urn1:BulkExchangeFile元素存在与xop:Include元素相关的问题。 架构需要base64Binary类型。 更新#2.5 更新了我的XML生成过程以包含USAddressGrp元素。 发现我在毫秒内有一个额外的字符(四个而不是三个)。 一旦我更正了这一点,同时从文件名的开头删除字符串“Form”, urn1:DocumentSystemFileNm的值就能够成功validation模式。 更新#3 […]

使用xmlns属性(命名空间)查询XDocument

我尝试从visual studio * .csproj文件中查询元素。 我创建了一个简短的例子来说明问题: // Working string xml1 = @” “; // Not working string xml2 = @” “; XDocument doc = XDocument.Parse(xml2); foreach (XElement element in doc.Descendants(“ItemGroup”)) { Console.WriteLine(element); } 字符串xml1工作正常,xml2不返回任何内容。 这些字符串之间的唯一区别是文档根目录中的xmlns属性。 如何查询包含xmlns属性的文档? 当xml文档包含xmlns属性时,为什么会出现问题?

如何在C#中序列化/反序列化可选的XML枚举?

我试图弄清楚如何将XML列表序列化/反序列化为C#,它具有枚举类型的可选属性。 以下是我的C#类: public class AttributeAssignmentExpressionElement : XACMLElement { [XmlAttribute] public string AttributeId { get; set; } [XmlAttribute] public Category Category { get; set; } } 我的Category枚举定义如下: public enum Category { [XmlEnum(Name = “urn:oasis:names:tc:xacml:1.0:subject-category:access-subject”)] Subject, [XmlEnum(Name = “urn:oasis:names:tc:xacml:3.0:attribute-category:resource”)] Resource, [XmlEnum(Name = “urn:oasis:names:tc:xacml:3.0:attribute-category:action”)] Action, [XmlEnum(Name = “urn:oasis:names:tc:xacml:3.0:attribute-category:environment”)] Environment } 当Category出现在相应的XML文件中时,序列化/反序列化按预期工作。 但是,如果XML中缺少Category ,则使用默认值(枚举中的第一项)。 如果我尝试使枚举变量可以为空( Category? ),则反序列化器会抛出exception,因为它无法反序列化复杂类型。 给定以下XML(不包含该属性),如何正确地序列化枚举? 在这种情况下,反序列化对象中的值应为null。 […]

C#XDocument加载多个根

我有一个没有root的XML文件。 我无法改变这一点。 我试图解析它,但XDocument.Load不会这样做。 我试图设置ConformanceLevel.Fragment ,但我仍然会抛出exception。 有人有解决方案吗? 我尝试使用XmlReader ,但事情搞砸了,无法正常工作。 XDocument.Load工作得很好,但是如果我有一个有多个根的文件,它就没有。

如何在XML序列化中插入XML注释?

我想在我的xml文件的顶部添加一些用于读取它的用户的注释。 我不知道如何使用xml序列化来做到这一点。 我在看这篇文章 C#XML在xml标记之后将注释插入XML XDocument document = new XDocument(); document.Add(new XComment(“Product XY Version 1.0.0.0”)); using (var writer = document.CreateWriter()) { serializer.WriteObject(writer, graph); } document.Save(Console.Out); 但我不确定发生了什么以及如何将其添加到我的代码中。 基本上我只有一些类,我将其序列化为xml并将其粘贴在内存流中。 所以我不确定我应该在什么时候添加评论。 谢谢 码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; namespace ConsoleApplication1 { [XmlRoot(“Course”)] public class MyWrapper { public MyWrapper() { TaskList = new List(); } […]

调整MVC 4 WebApi XmlSerializer以丢失nameSpace

我正在开发一个MVC WebAPI,它使用EF和POCO类进行存储。 我想要做的是从XML中删除命名空间,以便端点返回并接受没有它的xml对象。 (json工作得很好) 22 testas@email.com … 我想这个工作 22 testas@email.com … 希望无需用一堆属性来装饰POCO。 我为此设置了一个测试解决方案,事实上,这些方法很受欢迎(必须是我系统中的其他一些问题)。 无论如何 – 我使用这个解决方案的结果是: 22 TestAcc Test@Test.com 摆脱了顶部的架构,但现在搞砸了属性:(这是一个示例项目的链接