2016-12-10 9 views
0

特定のXSDでは、多くの属性を追加する必要があります。 Excel VBAを使用してプロセスを自動化したいと思います。自動化のためにExcel VBAを使用してXSDに属性を追加する方法

私はVBAにはとても新しいので、基礎を学び始めました。

私はVBAによってXMLで属性を追加する方法を説明したこのサイトに出くわしました。

http://excel-macro.tutorialhorizon.com/vba-excel-update-xml-file/#comment-74761

私はthierコードを参照さおよびXSDのためのコードを書きました。

私はサンプルXSDでこれをしようとすると、ここで今私が働いているどのXSDがある属性に

以下

を追加しようとしているため午前

Sub UpdateXML() 

Call fnUpdateXMLByTags 

End Sub 


Function fnUpdateXMLByTags() 

Dim mainWorkBook As Workbook 

Set mainWorkBook = ActiveWorkbook 

Set oXMLFile = CreateObject("Microsoft.XMLDOM") 
XMLFileName = "C:\Users\HP\Desktop\Python\VBA\XSDs\job.xsd" 
oXMLFile.Load (XMLFileName) 

Set ApplicantNodes = oXMLFile.SelectNodes("/PurchaseOrder/text()") 

'Add new Attribute to the Node 

Set ParentNode = oXMLFile.SelectSingleNode("/Application/USAddress/xs:attribute") 

' add its attribute 
Set newChildAttribute = oXMLFile.CreateAttribute("name") 
newChildAttribute.Text = "Country1" 
ParentNode.Attributes.SetNamedItem (newChildAttribute) 

Set newChildAttribute = oXMLFile.CreateAttribute("type") 
newChildAttribute.Text = "xsd:NMTOKEN" 
ParentNode.Attributes.SetNamedItem (newChildAttribute) 

Set newChildAttribute = oXMLFile.CreateAttribute("fixed") 
newChildAttribute.Text = "US" 
ParentNode.Attributes.SetNamedItem (newChildAttribute) 


oXMLFile.Save (XMLFileName) 

End Function 

次のもの(私は本を参考にした)

http://www.w3.org/2001/XMLSchema」>

<xsd:complexType name="PurchaseOrderType"> 

    <xsd:sequence> 
     <xsd:element name="ShipTo" type="tns:USAddress" maxOccurs="2"/> 
     <xsd:element name="BillTo" type="tns:USAddress"/> 
    </xsd:sequence> 
    <xsd:attribute name="OrderDate" type="xsd:date"/> 
</xsd:complexType> 

<xsd:complexType name="USAddress"> 
    <xsd:sequence> 
     <xsd:element name="name" type="xsd:string"/> 
     <xsd:element name="street" type="xsd:string"/> 
     <xsd:element name="city" type="xsd:string"/> 
     <xsd:element name="state" type="xsd:string"/> 
     <xsd:element name="zip" type="xsd:integer"/> 
    </xsd:sequence> 
    <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> 


私が必要とする基本的なことは、要素を含むXSDに属性を追加する方法ですExcel VBAを使用するその他の属性

私を助けてください。私はこれに固執しています。

答えて

0

AtrributesはsetAttributeメソッド

.setAttribute("country", "UK"); 

Live Demo

を使用してXMLファイル内の要素に追加することができますしかし、あなたの質問に私はあなたが多分専門用語を混乱だと思う、あなたは(XMLスキーマを変更する方法を求めていますXSD)、またはXML文書を変更します。

私が必要とする基本的なことは、Excel VBAを使用して 要素と他の属性を含むXSDに属性を追加する方法です。

+0

XSDで属性を追加する必要がありますが、XMLでは使用できません。 XSDではなくXMLで属性を追加するコードを見つけることができました。それが問題だ。 – Deepak

関連する問題