<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XMLChar &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/xmlchar/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Sun, 24 Jul 2022 03:38:34 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>XMLChar &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>java.io.IOException: The character &#039; &#039; is an invalid XML character</title>
		<link>https://noter.tw/2864/java-io-ioexception-the-character-is-an-invalid-xml-character/</link>
					<comments>https://noter.tw/2864/java-io-ioexception-the-character-is-an-invalid-xml-character/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Sun, 19 May 2013 06:27:21 +0000</pubDate>
				<category><![CDATA[一般程式]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java.io.IOException]]></category>
		<category><![CDATA[The character ' ' is an invalid XML character]]></category>
		<category><![CDATA[Xerces]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XMLChar]]></category>
		<category><![CDATA[特殊字元]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2864</guid>

					<description><![CDATA[<p>小蛙的工作常常需要做一些資料庫匯出成 XML 格式，以 XML 達到交換資料的目的，上星期匯出的時候發現 java.io.IOException: The character &#8216; &#82&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2864/java-io-ioexception-the-character-is-an-invalid-xml-character/" data-wpel-link="internal">java.io.IOException: The character &#039; &#039; is an invalid XML character</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>小蛙的工作常常需要做一些資料庫匯出成 XML 格式，以 XML 達到交換資料的目的，上星期匯出的時候發現<span style="color: #ff0000;"><strong> java.io.IOException: The character &#8216; &#8216; is an invalid XML character</strong></span> 這個 Exception，發生錯誤的檔案因為這個特殊字元導致 XML 匯出不完整，上網查了一些解決辦法記錄在這篇文章中。<br />
<span id="more-2864"></span><br />
一開始發生這個例外的時候，並沒有發現匯出的 XML 檔案是不完整的，直到最近再次處理相同資料要給同事進 Solr 的時候才發現這個問題，在 Stack Overflow 看到<a href="http://stackoverflow.com/questions/93655/stripping-invalid-xml-characters-in-java" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">這篇文章<span class="wpel-icon wpel-image wpel-icon-6"></span></a>，才知道其實要做到驗證字元是否合法的方法， Xerces 套件裡面早已經有了，以下方法來自該篇文章：</p>
<pre class="brush: java; gutter: true">/* from http://stackoverflow.com/questions/93655/stripping-invalid-xml-characters-in-java */
public static String stripInvalidXmlCharacters(String input) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i &lt; input.length(); i++) {
        char c = input.charAt(i);
        if (XMLChar.isValid(c)) {
            sb.append(c);
        }
    }
    return sb.toString();
}</pre>
<p>只要新增以上方法，透過 Xerces 中的 XMLChar.charAt(int); 方法就可以驗證該傳入的字元是否合法！<br />
附帶一提，在 Xerces 之前的版本，只需要用到 xerces.jar 就可以了，在比較新的版本似乎要載入以下 JAR 檔：resolver.jar, serializer.jar, xercesImpl.jar, xml-apis.jar。<br />
<strong>參考資料：</strong></p>
<ol>
<li>The Apache XercesTM Project<br />
<address><a href="http://xerces.apache.org/" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://xerces.apache.org/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>The character &#8216;&#8217; is an invalid XML character exception getting while export data in XML file @ XML forum at JavaRanch<br />
<address><a href="http://www.coderanch.com/t/477874/XML/character-invalid-XML-character-exception" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://www.coderanch.com/t/477874/XML/character-invalid-XML-character-exception<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>Stripping Invalid XML characters in Java @ Stack Overflow<br />
<address><a href="http://stackoverflow.com/questions/93655/stripping-invalid-xml-characters-in-java" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://stackoverflow.com/questions/93655/stripping-invalid-xml-characters-in-java<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>使用SAX處理XML檔案 @ JavaWorld@TW <span style="color: #ff0000;">(連結已失效)</span><br />
<address>http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=492</address>
</li>
</ol>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2864/java-io-ioexception-the-character-is-an-invalid-xml-character/" data-wpel-link="internal">java.io.IOException: The character &#039; &#039; is an invalid XML character</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2864/java-io-ioexception-the-character-is-an-invalid-xml-character/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
