标签: xml-attribute

用于指定字符串长度范围的RegEx:XSD属性元素

我试图将架构的属性元素限制为3到20个字符长,但是我收到一条错误消息,说我的RegEx无效:

<xs:attribute name="name" use="required">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-Z]{3,20}" />
        </xs:restriction>
    </xs:simpleType>
</xs:attribute>
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了什么吗?具体错误是"Range end code point is less than the start end code point"

regex xml xsd xml-attribute

4
推荐指数
1
解决办法
3695
查看次数

检索VBS中的XML属性的值

<Requirement Description="description" Operation="Configure">
   <Action ID="1000" Name="Split">
     <Contract>
       <Parameter Name="Version">4</Parameter>
       <Parameter Name="DefaultServer">192.168.00.</Parameter>
       <Parameter Name="DefaultUser">administrator</Parameter>
       <Parameter Name="DefaultPassword">password</Parameter>
       <Parameter Name="DefaultDomain">192.168.00.00</Parameter>
       <Parameter Name="Split">1</Parameter>
     </Contract>
   </Action>
</Requirement>
Run Code Online (Sandbox Code Playgroud)

从上面的XML文档中,我的目标是从VBScript替换属性default server和default domain的IP地址.

Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load(XMLFullPath) 
Set NodeList = objXMLDoc.documentElement.SelectNodes("//Parameter")

NodeList(i).nodeName 
Run Code Online (Sandbox Code Playgroud)

将名称命名为Parameter,并NodeList(i).Text为我提供4,IP地址,管理员等值.但是我无法获取属性名称,因此我可以直接更改属性的值.

vbscript xml-attribute xml-parsing

4
推荐指数
2
解决办法
3万
查看次数

编组时可选的JAXB xml属性

当我使用JAXB编组java对象时,我得到了xml元素

<error line="12" column="" message="test" />
Run Code Online (Sandbox Code Playgroud)

但我想要xml如下

<error line="12" message="test" />
Run Code Online (Sandbox Code Playgroud)

如果列值为空,那么我需要获取如上所示的xml,否则我需要获取元素中的column属性.

有没有办法得到它?

jaxb xml-attribute

4
推荐指数
1
解决办法
1万
查看次数

按特定顺序编写 XML 属性和命名空间声明

我正在尝试创建一个带有根元素的 XML 文件:

<urn:Command complete="true" xmlns:urn="namespaceURI">
Run Code Online (Sandbox Code Playgroud)

所以我有一个元素Command ,一个命名空间,namespaceURI 一个前缀urn ,最后一个属性字符串,其中包含名称和completetrue ,但没有命名空间。

我为此编写的代码返回:

<urn:Command xmlns:urn="namespaceURI" complete="true">
Run Code Online (Sandbox Code Playgroud)

所以问题是我希望属性字符串位于 XML 文件中的命名空间定义之前,但我在该网站上找不到类似的问题。

我尝试编写一个StartElement带有前缀和名称空间的元素,然后编写一个AttributeString不带名称空间的元素,这将返回根元素,其中首先定义了名称空间,然后是属性字符串。我也尝试过仅定义一个开始元素,然后定义两个属性字符串,但后来我找不到将前缀写入开始元素的方法。

这是我的原始代码,它首先返回具有命名空间定义的根元素,然后返回属性定义:

`Dim Writer as System.Xml.XmlWriter;
dim writerSettings  as System.Xml.XmlWriterSettings;
dim basePath as string;
dim source as string;
dim destination as string;

writerSettings = new System.Xml.XmlWriterSettings();
'writerSettings.ConformanceLevel= false;
'writerSettings.Encoding = new System.Text.UTF8Encoding(false);
writerSettings.OmitXmlDeclaration = false;

basePath = System.IO.Path.Combine("\\wnlcuieb502\WEI\Outbound","RolexSet");
source  = System.IO.Path.Combine(basePath,"\\wnlcuieb502\WEI\Outbound","TEST.XML");

Writer = System.Xml.XmlWriter.Create(source,writerSettings);
Writer.WriteStartDocument();

Writer.WriteStartElement("urn","SetPackagingOrder","urn:laetus.com:ws:tts:mes");
Writer.WriteAttributeString("complete",null,"true");
Writer.WriteEndElement();
Writer.WriteEndDocument();
Writer.dispose();


try
    destination …
Run Code Online (Sandbox Code Playgroud)

c# xml xmlwriter xml-namespaces xml-attribute

4
推荐指数
1
解决办法
2397
查看次数

从xml读取属性

有人可以帮我从这个xml结构中使用c#读取属性ows_AZPersonnummer

<listitems 
  xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" 
  xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 
  xmlns:rs="urn:schemas-microsoft-com:rowset"
  xmlns:z="#RowsetSchema"
  xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<rs:data ItemCount="1">
   <z:row 
      ows_AZNamnUppdragsansvarig="Peter" 
      ows_AZTypAvUtbetalning="Arvode till privatperson" 
      ows_AZPersonnummer="196202081276"
      ows_AZPlusgiro="5456436534"
      ows_MetaInfo="1;#"
      ows__ModerationStatus="0"
      ows__Level="1" ows_ID="1"
      ows_owshiddenversion="6"
      ows_UniqueId="1;#{11E4AD4C-7931-46D8-80BB-7E482C605990}"
      ows_FSObjType="1;#0"
      ows_Created="2009-04-15T08:29:32Z"
      ows_FileRef="1;#uppdragsavtal/Lists/Uppdragsavtal/1_.000" 
    />
</rs:data>
</listitems>
Run Code Online (Sandbox Code Playgroud)

并获得价值196202081276.

c# xml asp.net xml-attribute

3
推荐指数
2
解决办法
2486
查看次数

XmlDocument并使用xPath获取特定属性

我在这里看到了几个例子,其中Xpath与XmlDocument一起使用,以从XmlDocument节点获取特定属性....

Console.WriteLine(xmlDocument.SelectSingleNode("//dataTemplateSpecification/templates/template/elements/element/@name").Value.ToString());
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我得到一个"对象引用未设置为对象的实例".例外.每当我遇到特定的代码行时.我有一个小测试应用程序,我已经设置为测试不同的东西,然后我把它们放入我的主项目...

这是代码......

namespace ReadXml
{
    class Program
    {
        static void Main(string[] args)
        {
            //string fulXmlPath =     System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/templateExample.xml");
            XDocument xDocument = XDocument.Load("C:\\Users\\derekww\\Documents\\XML Documents\\templateExample.xml");
            XElement elem = xDocument.Element("dataTemplateSpecification"); ;
            XmlDocument xmlDocument = new XmlDocument();
            StreamReader file = new StreamReader("C:\\Users\\derekww\\Documents\\XML Documents\\templateExample.xml");

            xmlDocument.Load(file);

            //XmlDocument theDoc = new XmlDocument();
            //using (var xmlReader = xDocument.CreateReader())
            //{
            //    xmlDocument.Load(xmlReader);
            //}

            //Console.WriteLine(elem.ToString());
            XmlNode xNode = xmlDocument.SelectSingleNode("//dataTemplateSpecification/templates/template/elements/element");
            Console.WriteLine("WORK PLEASE!!!! {0}", xNode.Value.ToString());
            //Console.WriteLine(xmlDocument.SelectSingleNode("//dataTemplateSpecification/templates/template/elements/element/@name").Value.ToString());
            //Console.WriteLine("This better Work>>>> {0}", xmlDocument.Attributes["/dataTemplateSpecification/templates/template/elements/element/@name"].Value);
            Console.ReadLine();
            //Console.WriteLine("This better Work>>>> {0}", xmlDocument.SelectSingleNode("//dataTemplateSpecification/templates/template/elements/element/@name").Value);
            //foreach (String AttVal in …
Run Code Online (Sandbox Code Playgroud)

c# xml xpath xmldocument xml-attribute

3
推荐指数
1
解决办法
8906
查看次数

如何使用c#动态更改xml节点的属性

我有一个ac#应用程序,可以将用户的数据保存到xml文档中.我希望能够根据输入不同条件的用户动态更改xml节点的属性到文本框中,并选择保存/覆盖现有文件保存.问题是我不能简单地删除节点并使用new属性重新创建节点,因为节点具有无法删除的子节点.

有没有人有任何想法或建议?

XmlNode.Attributes方法没有提供一种方法,因为我可以告诉它只删除节点的属性并重新分配它.我可能错了.

c# xml xmlnode xml-attribute

3
推荐指数
1
解决办法
1万
查看次数

如何在 C# 中向 XmlDocument() 的根节点添加属性

我已经在 C# 中有一个 XmlDocument 对象。假设 InnerXml 看起来像这样;

<MyResponse>
  <ResponseType>
    <Id>8825</Id>
  </ResponseType>
</MyResponse>
Run Code Online (Sandbox Code Playgroud)

如何添加名称为 uuid 且值为 781283721381 的属性,例如 uuid="781283721381"。所以我的 Xml 输出如下所示;

<MyResponse uuid="781283721381">
  <ResponseType>
    <Id>8825</Id>
  </ResponseType>
</MyResponse>
Run Code Online (Sandbox Code Playgroud)

c# xmldocument xml-attribute document-root

3
推荐指数
1
解决办法
3009
查看次数

如何让 XmlReader 读取 C# 中的属性?

我有一个包含以下 XML 内容的 XML-Stream:

<WebError Key="A">
  <Message>B</Message>
  <Parameters>
    <Parameter name="C">D</Parameter>
  </Parameters>
</WebError>
Run Code Online (Sandbox Code Playgroud)

我找不到XmlReader读取Key属性的方法,所以reader.NodeTypeisXmlNodeType.Attributereader.LocalNameis "Key"

这就是我初始化我的方式XmlReader

XmlReader.Create(stream, new XmlReaderSettings { CloseInput = true, IgnoreWhitespace = true });
Run Code Online (Sandbox Code Playgroud)

这个读取器然后通过几个方法级别,直到它到达我的解析器函数。

这是我试图让读者阅读该元素的所有替代代码。从代码中剥离了控制结构,因此您只能看到实际调用的函数。

第一次尝试,通过MoveToFirstAttribute()调用移动到属性:

reader.Read(); // true
reader.IsStartElement("WebError"); // true
using (var nodeReader = reader.ReadSubtree()) {
  nodeReader.HasAttributes; // true
  nodeReader.MoveToFirstAttribute(); // false
  nodeReader.Read(); // true
  nodeReader.NodeType; // XmlNodeType.Element
  nodeReader.LocalName; // "WebError"
  using (var subLevelReader = nodeReader.ReadSubtree()) {
  }
  nodeReader.Read(); // …
Run Code Online (Sandbox Code Playgroud)

c# xmlreader xml-attribute

3
推荐指数
1
解决办法
1728
查看次数

为什么我的 C# Xml 代码只在我枚举变量 enumerable 时有效

我正在编写格式化 XML 文件的代码,以便子文件夹节点实际上嵌套在其父节点中。源 XML 将每个文件夹作为根中的单独子节点,而不是像您期望的那样在其主文件夹中包含子文件夹的正确树。这个问题的代码是关于:

// Load original XML

string sFile = "PathFile";
XmlDocument doc = new XmlDocument();
doc.Load(sFile);

var n = doc.DocumentElement.SelectNodes ("//*");   // Load all nodes into nodelist n
// int nCount = n.Count;                           // If uncommented code works

foreach(XmlNode x in n)
{ rest of the code }

Run Code Online (Sandbox Code Playgroud)

现在我的代码工作正常,但只是有时,即使在两次运行之间没有改变任何东西。我已将范围缩小为:在 Visual Studio 中调试代码时,如果我只是从头到尾运行代码,则会出错。如果我中途中断并查看 XmlNodelist n 中的属性(通过将光标悬停在它上面并查看元素计数),它确实可以工作。发现这一点后,我添加了

int nCount = n.Count; 
Run Code Online (Sandbox Code Playgroud)

行,现在代码从头到尾在无人监督的情况下运行。

这里发生了什么,解决这个问题的正确方法是什么?注意: doc.LoadXml 不适用于此特定文件。

谢谢你的负担,

托马斯

c# enumerate enumerable xml-attribute xmllist

2
推荐指数
1
解决办法
73
查看次数