Newer Version Available
ストリームを使用した XML の書き込み
XmlStreamWriter クラスメソッドでは、XML データの書き込みを可能にします。
これらのメソッドは HTTP コールアウトと併用して、コールアウト要求で外部サービスに送信する XML ドキュメントを作成します。次の例は、新しい XmlStreamReader オブジェクトのインスタンス化の方法を示しています。
1String xmlString = '<books><book>My Book</book><book>Your Book</book></books>';
2XmlStreamReader xsr = new XmlStreamReader(xmlString);XML ライターメソッド例
次の例では、XML ドキュメントを書き込み、その妥当性をテストします。
この Hello World サンプルにはカスタムオブジェクトが必要です。カスタムオブジェクトを自分で作成するか、オブジェクトと Apex コードを未管理パッケージとして Salesforce AppExchange からダウンロードできます。組織でサンプルアセットを取得するには、Apex Tutorials パッケージをインストールします。このパッケージには、納入先請求書の例のためのサンプルコードとオブジェクトも含まれています。
1public class XmlWriterDemo {
2
3 public String getXml() {
4 XmlStreamWriter w = new XmlStreamWriter();
5 w.writeStartDocument(null, '1.0');
6 w.writeProcessingInstruction('target', 'data');
7 w.writeStartElement('m', 'Library', 'http://www.book.com');
8 w.writeNamespace('m', 'http://www.book.com');
9 w.writeComment('Book starts here');
10 w.setDefaultNamespace('http://www.defns.com');
11 w.writeCData('<Cdata> I like CData </Cdata>');
12 w.writeStartElement(null, 'book', null);
13 w.writedefaultNamespace('http://www.defns.com');
14 w.writeAttribute(null, null, 'author', 'Manoj');
15 w.writeCharacters('This is my book');
16 w.writeEndElement(); //end book
17 w.writeEmptyElement(null, 'ISBN', null);
18 w.writeEndElement(); //end library
19 w.writeEndDocument();
20 String xmlOutput = w.getXmlString();
21 w.close();
22 return xmlOutput;
23 }
24}1@isTest
2private class XmlWriterDemoTest {
3 static TestMethod void basicTest() {
4 XmlWriterDemo demo = new XmlWriterDemo();
5 String result = demo.getXml();
6 String expected = '<?xml version="1.0"?><?target data?>' +
7 '<m:Library xmlns:m="http://www.book.com">' +
8 '<!--Book starts here-->' +
9 '<Cdata> I like CData </Cdata>' +
10'<book xmlns="http://www.defns.com" author="Manoj">This is my book</book><ISBN/></m:Library>';
11
12 System.assert(result == expected);
13 }
14}