vbsでXMLの属性を追加する方法とは?

このQ&Aのポイント
  • Vista以降の更新プログラム(msuファイル)を展開して出てくるXMLファイルに属性を追加する方法について解説します。
  • バッチファイルとvbsを組み合わせてXMLに連続的に属性を追加する方法についても説明します。
  • 提供されているXMLのソースコードと変更したい箇所も示し、具体的な記述例も解説します。
回答を見る
  • ベストアンサー

vbsでxmlの属性を追加したい

Vista以降の更新プログラム(msuファイル)を展開して出てくるXMLファイルに属性を追加して恒久的に適用出来るか試してみたところ、正常に適用でき、恒久化もされていました。 ちょっと本題から外れましたが、そこでバッチファイルとvbsを組み合わせてXMLに連続的にこの変更(属性追加)を加えたいのです。 そのような操作が出来る関数ってあるのでしょうか。 出来れば記述の例もご教授頂ければ嬉しいです。 以下にXMLのソースと変更したい箇所を書いておきます。 よろしくお願いします。 ※追加する前 <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <servicing> <package action="install"> <assemblyIdentity (略)> <source location=(略)> </package> </servicing> </unattend> ※追加した後 <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <servicing> <package action="install" permanence="permanent"> ←ここに要素を追加 <assemblyIdentity (略)> <source location=(略)> </package> </servicing> </unattend>

  • XML
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1
knt_8069
質問者

お礼

http://stackoverflow.com/questions/3499734/how-to-add-a-attribute-in-existing-xml-using-vbscript ↑こちらのサイトも参考にさせて頂いてvbsを組んでみたところ、成功しました。 遅くなりましたがお礼申し上げます。 ありがとうございました。 参考までにvbsのソースを置いておきます。 Dim xmlDoc Dim xmlNode Dim addNode 'cmdの引数を使ってXMLを読み込む '(例:cscript //nologo xmlrep.vbs "C:\Test\Windows6.0-KB900000.xml") strFileName = WScript.Arguments(0) Set xmlDoc = WScript.CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xmlDoc.load strFileName Set xmlNode = xmlDoc.selectSingleNode("/unattend/servicing/package") Set addNode = xmlDoc.createAttribute("permanence") addNode.Value = "permanent" xmlNode.attributes.setNamedItem(addNode) xmlDoc.Save WScript.Arguments(0) Set xmlDoc = Nothing

関連するQ&A

  • xslのdocument関数で読込んだ2つのxmlをxsl:sortしたい

    次のXSLで動作させています。 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xml:space="default" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> <xsl:output method="text" /> <xsl:template match="/"> <xsl:for-each select="document('取り込むXMLファイル')//z:row"> <xsl:value-of select="@取り出したい属性の名前" /> </xsl:for-each> <xsl:for-each select="//z:row"> <xsl:value-of select="@取り出したい属性の名前" /> </xsl:for-each> </xsl:template> </xsl:stylesheet> ここまでは出来たのですが、xsl:sortでまとめてsortするにはどうすればいいのでしょうか?

    • ベストアンサー
    • XML
  • PHP5 XML 既存属性ノードから属性を追加する方法

    お世話になっています。 現在PHP5を勉強中のものです。 XMLとの連携で下記のようなことを行いたいと思っています。 ・XMLを用いてアクセスログ(日計)を作ってみる。 ・(1)→(2)のように日々属性ノードが追加される。 【既存XML】 (1)<<AcLog.xml>>※2007/02/05 現在 ----------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <parent> <Accsess id="1"> <Date>20070205</Date> <Count>10</Count> </Accsess> </parent> (2)<<AcLog.xml>>※2007/02/06 現在 ----------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <parent> <Accsess id="1"> <Date>20070205</Date> <Count>10</Count> </Accsess> <Accsess id="2"> <Date>20070206</Date> <Count>1</Count> </Accsess> </parent> ----------------------------------------------------- 現在様々な参考書やネットサンプルなど見てはいるのですが、 どうしても<parent>の外で作成されてしまったりなど、 良い結果を生んでいません。 こんなことで質問するのはどうかとも思っておりますが、 サンプルサイトなどございましたらご教授ください。 よろしくお願いします。

    • 締切済み
    • PHP
  • 複数sitemap.xmlは何ファイルまで?制限はある?

    sitemap.xmlを、 <?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"> <sitemap> <loc>http://hogehoge.jp/sitemap1.xml.gz</loc> <lastmod>2009-05-15</lastmod> </sitemap> <sitemap> <loc>http://hogehoge.jp/sitemap2.xml.gz</loc> <lastmod>2009-05-15</lastmod> </sitemap> ・・・ </sitemapindex> という形で、複数のsitemapファイルを読むようにしたいのですが、 この方法で何ファイルまで登録できますか?

    • 締切済み
    • SEO
  • Excelのシートを本文として送信時のトラブル

    PCにあまり詳しくないので、上手く説明できていないかもしれませんがよろしくお願いします。 Excelのシートを左上のボタンで本文としてOutlook Expressで数人に同報送信したところ、1人の方だけ以下のような文字が表示されてしまいました。 <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns= や <head> <meta http-equiv=Content-Type content="text/html; charset=iso-2022-jp"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 11"> など、このような文字がつづいているみたいです。 受信者側のPCの設定に何か問題があるのでしょうか? よろしくお願いします。

  • 要素の内容にxmlを入れたい

    次のようなxmlを作成しました。 <?xml version="1.0" encoding="UTF-8"?> <tns:StateChange xsi:schemaLocation="http://sample.com/Change.xsd" xmlns:tns="http://sample.com/XSDDefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ServiceName>test</ServiceName> <wsdl></wsdl> </tns:StateChange> wsdl要素の内容として <?xml version="1.0" encoding="utf-8\"?><wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema".... といったいわゆるWSDLを文字列として指定したいと考えて、指定するとvalidate時にエラーになってしまいます。 xmlを要素の内容にしたい場合、どのようにすればいいのでしょうか?

    • ベストアンサー
    • XML
  • XMLやRDFファイルについて

    あるXMLファイルに記載されていました。 ********** <?xml version="1.0" encoding="UTF-8"?> <Rule xmlns="http://www.xxxxx.xx.xx/xxxxx" xmlns:client="http://www.xxxxx.xx.xx/xxxxx/Client">  ・  ・  ・ </Rule> ********** <Rule>~</Rule>がどのような解釈になるのか教えてください。 また、RDFファイルの次の解釈も教えてください。 ********** <rdf:RDF xmlns:rdf="http://www.w3c.org/rdf">  ・  ・  ・ </rdf:RDF> ********** よろしくお願いします。

    • 締切済み
    • XML
  • XMLファイルのアップロードの方法

         宜しくお願い致します 先ごろネットショッピングのHPを立ち上げました。 それでアクセスを増やすために、XMLファイルを作成して グーグルにサイトマップとして送信して登録をしようとしました。 XMLファイルを作る所までは順調だったのですが、自分のHPに アップロードするのがうまくいかなくて弱っています。 ルートディレクトリにアップロードとあるのでその通りにしても、 トップページには、HPのURLが表示されるだけです。 (これでいいのかどうかが分かりません?) sitemap.xml は下記のとおりです <?xml version="1.0" encoding="UTF-8"?> -<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <!-- created with free sitemap generation system www.sitemapxml.jp --> -<url> <loc>http://www3.hp-ez.com/hp/bitowabi/page1/</loc> <priority>1.0</priority> </url> </urlset> 宜しくお願い申し上げます。

  • VB6でXMLを作成しているのですがエラーが出ます

    VB6でXML作成のプログラムを作ったのですが、読み取り専用のノードを編集しようとしましたのメッセージボックスが表示されます。 どなたかどこが悪いのか、ご教授願います。 ソースコードは以下の通りです。 Dim xmlDoc As MSXML.DOMDocument 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(3) As IXMLDOMNode '要素 Dim attr As MSXML.IXMLDOMAttribute '属性 Dim newText Set xmlDoc = New MSXML.DOMDocument 'XMLドキュメントを作成します。 'XML宣言を追加します。 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) '<ClinicalDocument>要素を追加します。 Set node(1) = xmlDoc.createElement("ClinicalDocument") Call xmlDoc.appendChild(node(1)) 'xmlns:xsi属性を追加します。 Set attr = xmlDoc.createAttribute("xmlns:xsi") Call node(1).Attributes.setNamedItem(attr) attr.nodeValue = "http://www.w3.org/2001/XMLSchema-instance" ''ここでエラーが出ます '<Customer>要素を追加します。 Set node(2) = xmlDoc.createElement("Customer") Call node(1).appendChild(node(2)) Call node(2).appendChild(xmlDoc.createTextNode(vbNewLine)) 'id属性を追加します。 Set attr = xmlDoc.createAttribute("id") Call node(2).Attributes.setNamedItem(attr) attr.nodeValue = "1" '<Name>要素を追加します。 Set node(3) = xmlDoc.createElement("Name") Call node(2).appendChild(node(3)) Set newText = xmlDoc.createTextNode("Jhon") Call node(3).appendChild(newText) 'XMLドキュメントの出力 xmlDoc.save (App.Path & "\customer.xml")

  • 何故か子の要素に xmlns=

    ある「AABBCC」のタグが記述されているXML文書が有ります。 その文書に対し下記のXSLで変換をすると <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" version="1.0" encoding="UTF-16" indent="yes" /> <xsl:template match="/"> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <xsl:apply-templates select="AABBCC" /> </ABC> </xsl:template> <xsl:template match="AABBCC"> <DEF> <xsl:attribute name="ID">1</xsl:attribute> </DEF> </xsl:template> </xsl:stylesheet> 下記のような出力を期待しているのですが、 <?xml version="1.0" ?> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <DEF ID="1" /> </ABC> 何故か以下のようにDEFの属性に「xmlns=""」が追加されてしまいます。 <?xml version="1.0" ?> <ABC xmlns="http://www.abcd.co.jp/Schema_1_1"> <DEF ID="1" xmlns="" /> </ABC> まだ、XML,XSL共に勉強を始めたばかりでよく分かってないのでどうしてこのようなことが起こるのか、また対処法を教えてください。 アホな質問かもしれませんが、よろしくお願いします。

    • 締切済み
    • XML
  • VB.netでXMLファイルの妥当性チェック

    下記のようなXMLファイルを読み込み、 スキーマファイルで妥当性の検証を行っているのですが、 'http://www.w3.org/2001/XMLSchemainstance:schemaLocation' 属性が宣言されていません。 というエラーになってしまいます。 schemaLocationはxsdにも宣言しないとまずいのでしょうか?どなたかご存知のかた教えてください。 ------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <rfd:rdmxmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:rfd="file://XML\Samples\TEST" xsi:schemaLocation="file://XML\Samples\TEST C:\XML\Samples\Person.xsd"> <Person> <Date>2003-12-03T13:20:00+08:00</Date> <Name>H.HIGASHINO</Name> </Person> </rfd:rdm> -------------------------------------------------

専門家に質問してみよう