草庐IT

xml - 德尔福 2007 xsd 导入

coder 2024-06-30 原文

我要导入的文件是here . 导入向导后,当我尝试编译我的项目时,Delphi 说

Identifier redeclared: 'IXMLNodeList'.

我试图删除重新声明的“IXMLNodeList”之一,但这次 Delphi 说

Type 'IXMLNode' is not yet completely defined.

同一个 xsd 文件可以用 xsd.exe(.Net Framework 的一个工具)转换并用 Visual Studio 2013 构建。

这是一个错误吗?还是我做错了什么? 还有其他方法可以生成 *.pas 文件吗?

使用 Delphi 2007 生成的 *.pas 文件。(由于字符限制为 30000,因此删除了实现部分)

{**********************************************}
{                                              }
{             XML Data Binding                 }
{                                              }
{         Generated on: 27.8.2015 12:46:19     }
{       Generated from: D:\temp\testData.xsd   }
{   Settings stored in: D:\temp\testData.xdb   }
{                                              }
{**********************************************}

unit testData;

interface

uses xmldom, XMLDoc, XMLIntf;

type

{ Forward Decls }

  IXMLArrayDim = interface;
  IXMLHeader = interface;
  IXMLSymbolConfigObject = interface;
  IXMLProjectInfo = interface;
  IXMLSymbolconfiguration = interface;
  IXMLTypeList = interface;
  IXMLTypeSimple = interface;
  IXMLTypeSimpleList = interface;
  IXMLTypeUserDef = interface;
  IXMLTypeUserDefList = interface;
  IXMLUserDefElement = interface;
  IXMLTypeArray = interface;
  IXMLTypeArrayList = interface;
  IXMLNodeList = interface;
  IXMLNode = interface;
  IXMLNodeList = interface;

{ IXMLArrayDim }

  IXMLArrayDim = interface(IXMLNode)
    ['{B668E24B-E08D-4E8A-9687-8D50FE3141DA}']
    { Property Accessors }
    function Get_Minrange: Integer;
    function Get_Maxrange: Integer;
    procedure Set_Minrange(Value: Integer);
    procedure Set_Maxrange(Value: Integer);
    { Methods & Properties }
    property Minrange: Integer read Get_Minrange write Set_Minrange;
    property Maxrange: Integer read Get_Maxrange write Set_Maxrange;
  end;

{ IXMLHeader }

  IXMLHeader = interface(IXMLNode)
    ['{679233BE-93E7-42C9-B429-CF8F8B81A2BD}']
    { Property Accessors }
    function Get_Version: WideString;
    function Get_SymbolConfigObject: IXMLSymbolConfigObject;
    function Get_ProjectInfo: IXMLProjectInfo;
    procedure Set_Version(Value: WideString);
    { Methods & Properties }
    property Version: WideString read Get_Version write Set_Version;
    property SymbolConfigObject: IXMLSymbolConfigObject read Get_SymbolConfigObject;
    property ProjectInfo: IXMLProjectInfo read Get_ProjectInfo;
  end;

{ IXMLSymbolConfigObject }

  IXMLSymbolConfigObject = interface(IXMLNode)
    ['{FEBFF4CE-1B1F-4894-A90A-5C976FA5541B}']
    { Property Accessors }
    function Get_Version: WideString;
    procedure Set_Version(Value: WideString);
    { Methods & Properties }
    property Version: WideString read Get_Version write Set_Version;
  end;

{ IXMLProjectInfo }

  IXMLProjectInfo = interface(IXMLNode)
    ['{5D629B4B-8BB7-4627-A2D0-9B6ABD037F79}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Devicename: WideString;
    function Get_Appname: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Devicename(Value: WideString);
    procedure Set_Appname(Value: WideString);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Devicename: WideString read Get_Devicename write Set_Devicename;
    property Appname: WideString read Get_Appname write Set_Appname;
  end;

{ IXMLSymbolconfiguration }

  IXMLSymbolconfiguration = interface(IXMLNode)
    ['{B3CA7842-0593-485A-9B70-A17210F3DE47}']
    { Property Accessors }
    function Get_Header: IXMLHeader;
    function Get_TypeList: IXMLTypeList;
    function Get_NodeList: IXMLNodeList;
    { Methods & Properties }
    property Header: IXMLHeader read Get_Header;
    property TypeList: IXMLTypeList read Get_TypeList;
    property NodeList: IXMLNodeList read Get_NodeList;
  end;

{ IXMLTypeList }

  IXMLTypeList = interface(IXMLNode)
    ['{4F506F8A-9093-4B65-B3F6-CE04F4AA2B6A}']
    { Property Accessors }
    function Get_TypeSimple: IXMLTypeSimpleList;
    function Get_TypeUserDef: IXMLTypeUserDefList;
    function Get_TypeArray: IXMLTypeArrayList;
    { Methods & Properties }
    property TypeSimple: IXMLTypeSimpleList read Get_TypeSimple;
    property TypeUserDef: IXMLTypeUserDefList read Get_TypeUserDef;
    property TypeArray: IXMLTypeArrayList read Get_TypeArray;
  end;

{ IXMLTypeSimple }

  IXMLTypeSimple = interface(IXMLNode)
    ['{99ACCF81-AE73-4848-96D1-465B02B09732}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Swapsize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_Bitoffset: Integer;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Swapsize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Bitoffset(Value: Integer);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Swapsize: Integer read Get_Swapsize write Set_Swapsize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property Bitoffset: Integer read Get_Bitoffset write Set_Bitoffset;
  end;

{ IXMLTypeSimpleList }

  IXMLTypeSimpleList = interface(IXMLNodeCollection)
    ['{9FF4D34E-53A0-4C6E-A123-15DC9ECB86D9}']
    { Methods & Properties }
    function Add: IXMLTypeSimple;
    function Insert(const Index: Integer): IXMLTypeSimple;
    function Get_Item(Index: Integer): IXMLTypeSimple;
    property Items[Index: Integer]: IXMLTypeSimple read Get_Item; default;
  end;

{ IXMLTypeUserDef }

  IXMLTypeUserDef = interface(IXMLNodeCollection)
    ['{9FE7B6CE-0B86-499E-A039-A0939B5DE3A5}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_UserDefElement(Index: Integer): IXMLUserDefElement;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    { Methods & Properties }
    function Add: IXMLUserDefElement;
    function Insert(const Index: Integer): IXMLUserDefElement;
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Nativesize: Integer read Get_Nativesize write Set_Nativesize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property UserDefElement[Index: Integer]: IXMLUserDefElement read Get_UserDefElement; default;
  end;

{ IXMLTypeUserDefList }

  IXMLTypeUserDefList = interface(IXMLNodeCollection)
    ['{52B0116E-85CB-4299-988F-0EDA565597FA}']
    { Methods & Properties }
    function Add: IXMLTypeUserDef;
    function Insert(const Index: Integer): IXMLTypeUserDef;
    function Get_Item(Index: Integer): IXMLTypeUserDef;
    property Items[Index: Integer]: IXMLTypeUserDef read Get_Item; default;
  end;

{ IXMLUserDefElement }

  IXMLUserDefElement = interface(IXMLNode)
    ['{09C1780A-D3BB-4EF0-ABB8-87C3C2A7D164}']
    { Property Accessors }
    function Get_Type_: WideString;
    function Get_Iecname: WideString;
    function Get_Byteoffset: Integer;
    procedure Set_Type_(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Byteoffset(Value: Integer);
    { Methods & Properties }
    property Type_: WideString read Get_Type_ write Set_Type_;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property Byteoffset: Integer read Get_Byteoffset write Set_Byteoffset;
  end;

{ IXMLTypeArray }

  IXMLTypeArray = interface(IXMLNodeCollection)
    ['{5B1E6A12-D05F-4B0D-B7DF-4CAE0F51D0F7}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Basetype: WideString;
    function Get_Iecname: WideString;
    function Get_ArrayDim(Index: Integer): IXMLArrayDim;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Basetype(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    { Methods & Properties }
    function Add: IXMLArrayDim;
    function Insert(const Index: Integer): IXMLArrayDim;
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Nativesize: Integer read Get_Nativesize write Set_Nativesize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Basetype: WideString read Get_Basetype write Set_Basetype;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property ArrayDim[Index: Integer]: IXMLArrayDim read Get_ArrayDim; default;
  end;

{ IXMLTypeArrayList }

  IXMLTypeArrayList = interface(IXMLNodeCollection)
    ['{44BC02D7-A6E9-4E4E-8FC1-F4D7481CBCF4}']
    { Methods & Properties }
    function Add: IXMLTypeArray;
    function Insert(const Index: Integer): IXMLTypeArray;
    function Get_Item(Index: Integer): IXMLTypeArray;
    property Items[Index: Integer]: IXMLTypeArray read Get_Item; default;
  end;

{ IXMLNodeList }

  IXMLNodeList = interface(IXMLNodeCollection)
    ['{A9F27BF3-5720-4687-931A-B4C7AF13919A}']
    { Property Accessors }
    function Get_Node(Index: Integer): IXMLNode;
    { Methods & Properties }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    property Node[Index: Integer]: IXMLNode read Get_Node; default;
  end;

{ IXMLNode }

  IXMLNode = interface(IXMLNode)
    ['{69BBFB83-04B8-47D0-9A64-F7E6DDE649F7}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Type_: WideString;
    function Get_Access: WideString;
    function Get_Area: Integer;
    function Get_Offset: Integer;
    function Get_Directaddress: WideString;
    function Get_Node: IXMLNodeList;
    function Get_Comment: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Type_(Value: WideString);
    procedure Set_Access(Value: WideString);
    procedure Set_Area(Value: Integer);
    procedure Set_Offset(Value: Integer);
    procedure Set_Directaddress(Value: WideString);
    procedure Set_Comment(Value: WideString);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Type_: WideString read Get_Type_ write Set_Type_;
    property Access: WideString read Get_Access write Set_Access;
    property Area: Integer read Get_Area write Set_Area;
    property Offset: Integer read Get_Offset write Set_Offset;
    property Directaddress: WideString read Get_Directaddress write Set_Directaddress;
    property Node: IXMLNodeList read Get_Node;
    property Comment: WideString read Get_Comment write Set_Comment;
  end;

{ IXMLNodeList }

  IXMLNodeList = interface(IXMLNodeCollection)
    ['{0E766622-8449-47F9-AD37-444847F37385}']
    { Methods & Properties }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    function Get_Item(Index: Integer): IXMLNode;
    property Items[Index: Integer]: IXMLNode read Get_Item; default;
  end;

{ Forward Decls }

  TXMLArrayDim = class;
  TXMLHeader = class;
  TXMLSymbolConfigObject = class;
  TXMLProjectInfo = class;
  TXMLSymbolconfiguration = class;
  TXMLTypeList = class;
  TXMLTypeSimple = class;
  TXMLTypeSimpleList = class;
  TXMLTypeUserDef = class;
  TXMLTypeUserDefList = class;
  TXMLUserDefElement = class;
  TXMLTypeArray = class;
  TXMLTypeArrayList = class;
  TXMLNodeList = class;
  TXMLNode = class;
  TXMLNodeList = class;

{ TXMLArrayDim }

  TXMLArrayDim = class(TXMLNode, IXMLArrayDim)
  protected
    { IXMLArrayDim }
    function Get_Minrange: Integer;
    function Get_Maxrange: Integer;
    procedure Set_Minrange(Value: Integer);
    procedure Set_Maxrange(Value: Integer);
  end;

{ TXMLHeader }

  TXMLHeader = class(TXMLNode, IXMLHeader)
  protected
    { IXMLHeader }
    function Get_Version: WideString;
    function Get_SymbolConfigObject: IXMLSymbolConfigObject;
    function Get_ProjectInfo: IXMLProjectInfo;
    procedure Set_Version(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLSymbolConfigObject }

  TXMLSymbolConfigObject = class(TXMLNode, IXMLSymbolConfigObject)
  protected
    { IXMLSymbolConfigObject }
    function Get_Version: WideString;
    procedure Set_Version(Value: WideString);
  end;

{ TXMLProjectInfo }

  TXMLProjectInfo = class(TXMLNode, IXMLProjectInfo)
  protected
    { IXMLProjectInfo }
    function Get_Name: WideString;
    function Get_Devicename: WideString;
    function Get_Appname: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Devicename(Value: WideString);
    procedure Set_Appname(Value: WideString);
  end;

{ TXMLSymbolconfiguration }

  TXMLSymbolconfiguration = class(TXMLNode, IXMLSymbolconfiguration)
  protected
    { IXMLSymbolconfiguration }
    function Get_Header: IXMLHeader;
    function Get_TypeList: IXMLTypeList;
    function Get_NodeList: IXMLNodeList;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeList }

  TXMLTypeList = class(TXMLNode, IXMLTypeList)
  private
    FTypeSimple: IXMLTypeSimpleList;
    FTypeUserDef: IXMLTypeUserDefList;
    FTypeArray: IXMLTypeArrayList;
  protected
    { IXMLTypeList }
    function Get_TypeSimple: IXMLTypeSimpleList;
    function Get_TypeUserDef: IXMLTypeUserDefList;
    function Get_TypeArray: IXMLTypeArrayList;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeSimple }

  TXMLTypeSimple = class(TXMLNode, IXMLTypeSimple)
  protected
    { IXMLTypeSimple }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Swapsize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_Bitoffset: Integer;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Swapsize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Bitoffset(Value: Integer);
  end;

{ TXMLTypeSimpleList }

  TXMLTypeSimpleList = class(TXMLNodeCollection, IXMLTypeSimpleList)
  protected
    { IXMLTypeSimpleList }
    function Add: IXMLTypeSimple;
    function Insert(const Index: Integer): IXMLTypeSimple;
    function Get_Item(Index: Integer): IXMLTypeSimple;
  end;

{ TXMLTypeUserDef }

  TXMLTypeUserDef = class(TXMLNodeCollection, IXMLTypeUserDef)
  protected
    { IXMLTypeUserDef }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_UserDefElement(Index: Integer): IXMLUserDefElement;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    function Add: IXMLUserDefElement;
    function Insert(const Index: Integer): IXMLUserDefElement;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeUserDefList }

  TXMLTypeUserDefList = class(TXMLNodeCollection, IXMLTypeUserDefList)
  protected
    { IXMLTypeUserDefList }
    function Add: IXMLTypeUserDef;
    function Insert(const Index: Integer): IXMLTypeUserDef;
    function Get_Item(Index: Integer): IXMLTypeUserDef;
  end;

{ TXMLUserDefElement }

  TXMLUserDefElement = class(TXMLNode, IXMLUserDefElement)
  protected
    { IXMLUserDefElement }
    function Get_Type_: WideString;
    function Get_Iecname: WideString;
    function Get_Byteoffset: Integer;
    procedure Set_Type_(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Byteoffset(Value: Integer);
  end;

{ TXMLTypeArray }

  TXMLTypeArray = class(TXMLNodeCollection, IXMLTypeArray)
  protected
    { IXMLTypeArray }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Basetype: WideString;
    function Get_Iecname: WideString;
    function Get_ArrayDim(Index: Integer): IXMLArrayDim;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Basetype(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    function Add: IXMLArrayDim;
    function Insert(const Index: Integer): IXMLArrayDim;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeArrayList }

  TXMLTypeArrayList = class(TXMLNodeCollection, IXMLTypeArrayList)
  protected
    { IXMLTypeArrayList }
    function Add: IXMLTypeArray;
    function Insert(const Index: Integer): IXMLTypeArray;
    function Get_Item(Index: Integer): IXMLTypeArray;
  end;

{ TXMLNodeList }

  TXMLNodeList = class(TXMLNodeCollection, IXMLNodeList)
  protected
    { IXMLNodeList }
    function Get_Node(Index: Integer): IXMLNode;
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLNode }

  TXMLNode = class(TXMLNode, IXMLNode)
  private
    FNode: IXMLNodeList;
  protected
    { IXMLNode }
    function Get_Name: WideString;
    function Get_Type_: WideString;
    function Get_Access: WideString;
    function Get_Area: Integer;
    function Get_Offset: Integer;
    function Get_Directaddress: WideString;
    function Get_Node: IXMLNodeList;
    function Get_Comment: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Type_(Value: WideString);
    procedure Set_Access(Value: WideString);
    procedure Set_Area(Value: Integer);
    procedure Set_Offset(Value: Integer);
    procedure Set_Directaddress(Value: WideString);
    procedure Set_Comment(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLNodeList }

  TXMLNodeList = class(TXMLNodeCollection, IXMLNodeList)
  protected
    { IXMLNodeList }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    function Get_Item(Index: Integer): IXMLNode;
  end;

最佳答案

Delphi XSD 导入器为每个类型添加一个 IXML 前缀。对于您的 XSD,生成的(生成的)接口(interface)名称与 Delphi XML 框架的接口(interface)名称冲突:

...
<xs:element name="Node">
...
<xs:element name="NodeList">
...

XSD 中的这些元素类型声明导致接口(interface)类型 { IXMLNode } 和 { IXMLNodeList } 的生成。


基于 whosrdaddy 评论的潜在解决方法:在 XML 数据绑定(bind)向导中重命名冲突的类型名称。屏幕截图显示标识符名称是可编辑的,我添加了一个下划线以将其从 IXMLNodeList 重命名为 IXML_NodeList。

关于xml - 德尔福 2007 xsd 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246453/

有关xml - 德尔福 2007 xsd 导入的更多相关文章

  1. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  2. ruby - 检查是否通过 require 执行或导入了 Ruby 程序 - 2

    如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby​​文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否

  3. Ruby:如何从另一个文件导入变量? - 2

    我正在尝试创建一个与compass一起使用的本地配置文件,这样我们就可以处理开发人员机器上的不同导入路径。到目前为止,我已经尝试将文件导入到异常block中,以防它不存在,然后进一步使用该变量:local_config.rbVENV_FOLDER='venv'config.rbVENV_FOLDER='.'beginrequire'local_config.rb'rescueLoadErrorendputsVENV_FOLDER通常我是一名Python开发人员,所以我希望导入将VENV_FOLDER的值更改为venv,但它仍然是。之后。有没有一种方法可以导入local_config.r

  4. ruby-on-rails - 如何在 Rails 3 中禁用 XML 解析 - 2

    我想禁用HTTP参数的自动XML解析。但我发现命令仅适用于Rails2.x,它们都不适用于3.0:config.action_controller.param_parsers.deleteMime::XML(application.rb)ActionController::Base.param_parsers.deleteMime::XMLRails3.0中的等价物是什么? 最佳答案 根据CVE-2013-0156的最新安全公告你可以将它用于Rails3.0。3.1和3.2ActionDispatch::ParamsParser::

  5. ruby - 如何使用 Nokogiri::XML::Builder 生成动态标签? - 2

    我正在遍历数组中的一组标签名称,我想使用构建器打印每个标签名称,而不是求助于“我认为:builder=Nokogiri::XML::Builder.newdo|xml|fortagintagsxml.tag!tag,somevalendend会这样做,但它只是创建名称为“tag”的标签,并将标签变量作为元素的文本值。有人可以帮忙吗?这个看起来应该比较简单,我刚刚在搜索引擎上找不到答案。我可能没有以正确的方式提问。 最佳答案 尝试以下操作。如果我没记错的话,我添加了一个根节点,因为Nokogiri需要一个。builder=Nokogi

  6. ruby - Ruby 导入的方法总是私有(private)的吗? - 2

    最好用一个例子来解释:文件1.rb:deffooputs123end文件2.rb:classArequire'file1'endA.new.foo将给出错误“':调用了私有(private)方法'foo'”。我可以通过执行A.new.send("foo")来解决这个问题,但是有没有办法公开导入的方法?编辑:澄清一下,我没有混淆include和require。另外,我不能使用正常包含的原因(正如许多人正确指出的那样)是因为这是元编程设置的一部分。我需要允许用户在运行时添加功能;例如,他可以说“run-this-app--includefile1.rb”,应用程序的行为将根据他在file1

  7. ruby-on-rails - Rails 导入 CSV 错误 : invalid byte sequence in UTF-8 - 2

    尝试在我的Rails应用程序中导入CSV文件时,出现错误UTF-8中的无效字节序列。一切正常,直到我添加了一个gsub方法来将其中一个CSV列与我的数据库中的一个字段进行比较。当我导入CSV文件时,我想检查每一行的地址是否包含在特定客户端的不同地址数组中。我有一个带有alt_addresses属性的客户端模型,其中包含客户端地址的几种不同可能格式。然后我有一个引用模型(如果您熟悉本地SEO,您就会知道这个术语)。引用模型没有地址字段,但它有一个nap_correct?字段(NAP代表“姓名”、“地址”、“电话号码”)。如果CSV行的名称、地址和电话号码与我在该客户的数据库中拥有的相同,

  8. ruby - 如何让 Nokogiri 解析并返回 XML 文档? - 2

    这是一些奇怪的例子:#!/usr/bin/rubyrequire'rubygems'require'open-uri'require'nokogiri'print"withoutread:",Nokogiri(open('http://weblog.rubyonrails.org/')).class,"\n"print"withread:",Nokogiri(open('http://weblog.rubyonrails.org/').read).class,"\n"运行此返回:withoutread:Nokogiri::XML::Documentwithread:Nokogiri::

  9. ruby - 模式加载时出现 Nokogiri::XML::Schema SyntaxError - 2

    我正在尝试加载SAML协议(protocol)架构(具体来说:https://www.oasis-open.org/committees/download.php/3407/oasis-sstc-saml-schema-protocol-1.1.xsd),但在执行此操作之后:schema=Nokogiri::XML::Schema(File.read('saml11_schema.xsd'))我得到这个输出:Nokogiri::XML::SyntaxErrorException:Element'{http://www.w3.org/2001/XMLSchema}element',att

  10. ruby - git:从 bitbucket 导出并导入 github(带提交) - 2

    我在bitbucket上创建了一个私有(private)git存储库并提交了代码。现在我想导出所有(提交、代码、历史记录)并将其导入github上的gitrepo。有没有办法做到这一点?谢谢 最佳答案 在本地检查所有内容到您的计算机和gitpull。创建一个github存储库将此存储库添加为您的第二个远程(“使用gitremote添加githubURL”)推送到第二个Remote 关于ruby-git:从bitbucket导出并导入github(带提交),我们在StackOverflow

随机推荐