使用javascript强调字符解析xml

时间:2012-12-05 17:56:29

标签: javascript xml parsing

我打电话给我无法控制的网络服务器后,我收到了这个所谓的XML。

<?xml version="1.0"?>
<sfx_menu>
<ctx_obj_set>&lt;ctx_object_1&gt;&lt;perldata&gt;
&lt;hash&gt;
&lt;item key="@rft.auinit"&gt;
&lt;array&gt;
&lt;item key="48"&gt;R O&lt;/item&gt;
&lt;item key="55"&gt;W S&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="rft.issn"&gt;0066-782X&lt;/item&gt;
&lt;item key="_stash"&gt;
&lt;hash&gt;
&lt;item key="@rft_id"&gt;
&lt;array&gt;
&lt;item key="0"&gt;info:pmid/22286365&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;/hash&gt;
&lt;/item&gt;
&lt;item key="rft.year"&gt;2011&lt;/item&gt;
&lt;item key="rft.eissn"&gt;1678-4170&lt;/item&gt;
&lt;item key="rft.place"&gt;São Paulo,&lt;/item&gt;
&lt;item key="@sfx.subcategory"&gt;
&lt;array&gt;
&lt;item key="0"&gt;Clinical Medicine&lt;/item&gt;
&lt;item key="1"&gt;General and Others&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@rft.auinitm"&gt;
&lt;array&gt;
&lt;item key="0"&gt;C&lt;/item&gt;
&lt;item key="55"&gt;S&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="svc.fulltext"&gt;yes&lt;/item&gt;
&lt;item key="@rft_id"&gt;
&lt;array&gt;
&lt;item key="0"&gt;info:pmid/22286365&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="rft.atitle"&gt;[In Process Citation].&lt;/item&gt;
&lt;item key="sfx.response_type"&gt;simplexml&lt;/item&gt;
&lt;item key="sfx.ignore_char_set"&gt;1&lt;/item&gt;
&lt;item key="req.session_id"&gt;s96D99C8A-3E41-11E2-9D07-B659D85E6AE8&lt;/item&gt;
&lt;item key="ctx_enc"&gt;UTF-8&lt;/item&gt;
&lt;item key="rft.object_type"&gt;JOURNAL&lt;/item&gt;
&lt;item key="rft.issue_start"&gt;5&lt;/item&gt;
&lt;item key="rft.language"&gt;eng&lt;/item&gt;
&lt;item key="sfx.has_full_text"&gt;yes&lt;/item&gt;
&lt;item key="rft.object_id"&gt;954927591345&lt;/item&gt;
&lt;item key="rft.volume_start"&gt;97&lt;/item&gt;
&lt;item key="rft.volume"&gt;97&lt;/item&gt;
&lt;item key="sfx.request_id"&gt;21652172&lt;/item&gt;
&lt;item key="rft.genre"&gt;article&lt;/item&gt;
&lt;item key="rft.pub"&gt;Sociedade Brasileira de Cardiologia.&lt;/item&gt;
&lt;item key="rft.issue"&gt;5 Suppl 1&lt;/item&gt;
&lt;item key="sfx.openurl"&gt;http://sfxhosted.exlibrisgroup.com/epo?    rft.genre=article%2Cchapter%2Cbookitem&amp;amp;svc.fulltext=yes&amp;amp;sfx.response_type=simplexml&amp;amp;id=pmid%3A22286365&lt;/item&gt;
&lt;item key="rft.issue_alphastart"&gt; Suppl 1&lt;/item&gt;
&lt;item key="rft.title"&gt;Arquivos brasileiros de cardiologia&lt;/item&gt;
&lt;item key="@rft.stitle"&gt;
&lt;array&gt;
&lt;item key="0"&gt;ARQ BRAS CARDIOL&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@rfe_id"&gt;
&lt;array&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@rft.aufirst"&gt;
&lt;array&gt;
&lt;item key="0"&gt;Antonio&lt;/item&gt;
&lt;item key="1"&gt;Antonio S�rgio de Santis Andrade&lt;/item&gt;
&lt;item key="2"&gt;Jo�o Ricardo Cordeiro&lt;/item&gt;
&lt;item key="3"&gt;Lucas Jos� Tachotti&lt;/item&gt;
&lt;item key="4"&gt;Ricardo Casalino Sanches&lt;/item&gt;
&lt;item key="5"&gt;Tarso Augusto Duenhas&lt;/item&gt;
&lt;item key="6"&gt;Alexandre&lt;/item&gt;
&lt;item key="7"&gt;Alberto&lt;/item&gt;
&lt;item key="8"&gt;Alfredo&lt;/item&gt;
&lt;item key="9"&gt;Auristela Isabel de Oliveira&lt;/item&gt;
&lt;item key="10"&gt;Bertha&lt;/item&gt;
&lt;item key="11"&gt;Camilo&lt;/item&gt;
&lt;item key="12"&gt;Carlos R Mart�nez&lt;/item&gt;
&lt;item key="13"&gt;Cesar&lt;/item&gt;
&lt;item key="14"&gt;Clara&lt;/item&gt;
&lt;item key="15"&gt;Daniel&lt;/item&gt;
&lt;item key="16"&gt;Dany&lt;/item&gt;
&lt;item key="17"&gt;Eduardo&lt;/item&gt;
&lt;item key="18"&gt;Evandro&lt;/item&gt;
&lt;item key="19"&gt;Fabio S�ndoli&lt;/item&gt;
&lt;item key="20"&gt;Fernando&lt;/item&gt;
&lt;item key="21"&gt;Fernando&lt;/item&gt;
&lt;item key="22"&gt;Fernando&lt;/item&gt;
&lt;item key="23"&gt;Fernando&lt;/item&gt;
&lt;item key="24"&gt;Flvio&lt;/item&gt;
&lt;item key="25"&gt;Francisco Diniz Affonso&lt;/item&gt;
&lt;item key="26"&gt;Gilberto&lt;/item&gt;
&lt;item key="27"&gt;Guilherme&lt;/item&gt;
&lt;item key="28"&gt;Henrique&lt;/item&gt;
&lt;item key="29"&gt;Humberto&lt;/item&gt;
&lt;item key="30"&gt;Jos&lt;/item&gt;
&lt;item key="31"&gt;Jos� Carlos Raimundo&lt;/item&gt;
&lt;item key="32"&gt;Jos� Roberto Maldonado&lt;/item&gt;
&lt;item key="33"&gt;Juan&lt;/item&gt;
&lt;item key="34"&gt;Juan&lt;/item&gt;
&lt;item key="35"&gt;Juan&lt;/item&gt;
&lt;item key="36"&gt;L�dia Ana Zytynski&lt;/item&gt;
&lt;item key="37"&gt;Luiz Antonio Ferreira&lt;/item&gt;
&lt;item key="38"&gt;Luiz&lt;/item&gt;
&lt;item key="39"&gt;Marcelo&lt;/item&gt;
&lt;item key="40"&gt;Marcelo Luiz Campos&lt;/item&gt;
&lt;item key="41"&gt;Marcelo&lt;/item&gt;
&lt;item key="42"&gt;Mauricio de Rezende&lt;/item&gt;
&lt;item key="43"&gt;Max&lt;/item&gt;
&lt;item key="44"&gt;Omar&lt;/item&gt;
&lt;item key="45"&gt;Pablo Maria A&lt;/item&gt;
&lt;item key="46"&gt;Paulo de Lara&lt;/item&gt;
&lt;item key="47"&gt;Rog�rio Eduardo Gomes Sarmento&lt;/item&gt;
&lt;item key="48"&gt;Roney&lt;/item&gt;
&lt;item key="49"&gt;Srgio&lt;/item&gt;
&lt;item key="50"&gt;Silvia&lt;/item&gt;
&lt;item key="51"&gt;Solange&lt;/item&gt;
&lt;item key="52"&gt;Tirone&lt;/item&gt;
&lt;item key="53"&gt;Vctor&lt;/item&gt;
&lt;item key="54"&gt;Victor&lt;/item&gt;
&lt;item key="55"&gt;Walkiria&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@rft.aulast"&gt;
&lt;array&gt;
&lt;item key="0"&gt;Bacelar&lt;/item&gt;
&lt;item key="27"&gt;Spina&lt;/item&gt;
&lt;item key="28"&gt;Murad&lt;/item&gt;
&lt;item key="29"&gt;Hernández&lt;/item&gt;
&lt;item key="30"&gt;Mangione&lt;/item&gt;
&lt;item key="31"&gt;Brito&lt;/item&gt;
&lt;item key="32"&gt;Murillo&lt;/item&gt;
&lt;item key="33"&gt;Plana&lt;/item&gt;
&lt;item key="34"&gt;Paganini&lt;/item&gt;
&lt;item key="35"&gt;Krauss&lt;/item&gt;
&lt;item key="36"&gt;Moura&lt;/item&gt;
&lt;item key="37"&gt;Carvalho&lt;/item&gt;
&lt;item key="38"&gt;Cardoso&lt;/item&gt;
&lt;item key="39"&gt;Katz&lt;/item&gt;
&lt;item key="40"&gt;Vieira&lt;/item&gt;
&lt;item key="41"&gt;Montera&lt;/item&gt;
&lt;item key="42"&gt;Barbosa&lt;/item&gt;
&lt;item key="43"&gt;Grinberg&lt;/item&gt;
&lt;item key="44"&gt;Villagrán&lt;/item&gt;
&lt;item key="45"&gt;Pomerantzeff&lt;/item&gt;
&lt;item key="46"&gt;Lavitola&lt;/item&gt;
&lt;item key="47"&gt;Leite&lt;/item&gt;
&lt;item key="48"&gt;Sampaio&lt;/item&gt;
&lt;item key="49"&gt;Franco&lt;/item&gt;
&lt;item key="50"&gt;Martins&lt;/item&gt;
&lt;item key="51"&gt;Bordignon&lt;/item&gt;
&lt;item key="52"&gt;David&lt;/item&gt;
&lt;item key="53"&gt;Duré&lt;/item&gt;
&lt;item key="54"&gt;Rossei&lt;/item&gt;
&lt;item key="55"&gt;Ávila&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="sfx.sourcename"&gt;PUBMED&lt;/item&gt;
&lt;item key="rft.jtitle"&gt;Arquivos brasileiros de cardiologia&lt;/item&gt;
&lt;item key="rft.coden"&gt;ABCAAJ&lt;/item&gt;
&lt;item key="existing_ts_ids"&gt;
&lt;array&gt;
&lt;item key="0"&gt;110976638852341&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="sfx.sid"&gt;pmid&lt;/item&gt;
&lt;item key="@rft.au"&gt;
&lt;array&gt;
&lt;item key="0"&gt;Bacelar, Antonio Carlos&lt;/item&gt;
&lt;item key="1"&gt;Lopes, Antonio S�rgio de Santis Andrade&lt;/item&gt;
&lt;item key="2"&gt;Fernandes, Jo�o Ricardo Cordeiro&lt;/item&gt;
&lt;item key="3"&gt;Pires, Lucas Jos� Tachotti&lt;/item&gt;
&lt;item key="4"&gt;de Moraes, Ricardo Casalino Sanches&lt;/item&gt;
&lt;item key="5"&gt;Accorsi, Tarso Augusto Duenhas&lt;/item&gt;
&lt;item key="10"&gt;Boer, Bertha Napchan&lt;/item&gt;
&lt;item key="11"&gt;Abdulmassih Neto, Camilo&lt;/item&gt;
&lt;item key="12"&gt;Sánchez, Carlos R Mart�nez&lt;/item&gt;
&lt;item key="13"&gt;Esteves, Cesar Augusto&lt;/item&gt;
&lt;item key="14"&gt;Weksler, Clara&lt;/item&gt;
&lt;item key="15"&gt;Piñeiro, Daniel J&lt;/item&gt;
&lt;item key="16"&gt;Kruczan, Dany David&lt;/item&gt;
&lt;item key="17"&gt;Rossi, Eduardo Giusti&lt;/item&gt;
&lt;item key="18"&gt;Mesquita, Evandro Tinoco&lt;/item&gt;
&lt;item key="19"&gt;de Brito Junior, Fabio S�ndoli&lt;/item&gt;
&lt;item key="20"&gt;Bacal, Fernando&lt;/item&gt;
&lt;item key="21"&gt;Bosh, Fernando&lt;/item&gt;
&lt;item key="29"&gt;Hernández, Humberto Martnez&lt;/item&gt;
&lt;item key="30"&gt;Mangione, Jos Armando&lt;/item&gt;
&lt;item key="31"&gt;Brito, Jos� Carlos Raimundo&lt;/item&gt;
&lt;item key="32"&gt;Murillo, Jos� Roberto Maldonado&lt;/item&gt;
&lt;item key="33"&gt;Plana, Juan Carlos&lt;/item&gt;
&lt;item key="34"&gt;Paganini, Juan Jos&lt;/item&gt;
&lt;item key="35"&gt;Krauss, Juan&lt;/item&gt;
&lt;item key="36"&gt;Moura, L�dia Ana Zytynski&lt;/item&gt;
&lt;item key="37"&gt;Carvalho, Luiz Antonio Ferreira&lt;/item&gt;
&lt;item key="38"&gt;Cardoso, Luiz Francisco&lt;/item&gt;
&lt;item key="39"&gt;Katz, Marcelo&lt;/item&gt;
&lt;item key="40"&gt;Vieira, Marcelo Luiz Campos&lt;/item&gt;
&lt;item key="41"&gt;Montera, Marcelo Westerlund&lt;/item&gt;
&lt;item key="42"&gt;Barbosa, Mauricio de Rezende&lt;/item&gt;
&lt;item key="43"&gt;Grinberg, Max&lt;/item&gt;
&lt;item key="44"&gt;Villagrán, Omar Alonzo&lt;/item&gt;
&lt;item key="45"&gt;Pomerantzeff, Pablo Maria A&lt;/item&gt;
&lt;item key="46"&gt;Lavitola, Paulo de Lara&lt;/item&gt;
&lt;item key="47"&gt;Leite, Rog�rio Eduardo Gomes Sarmento&lt;/item&gt;
&lt;item key="48"&gt;Sampaio, Roney Orismar&lt;/item&gt;
&lt;item key="49"&gt;Franco, Srgio&lt;/item&gt;
&lt;item key="50"&gt;Martins, Silvia Marinho&lt;/item&gt;
&lt;item key="51"&gt;Bordignon, Solange&lt;/item&gt;
&lt;item key="52"&gt;David, Tirone E&lt;/item&gt;
&lt;item key="53"&gt;Duré, Vctor Rojas&lt;/item&gt;
&lt;item key="54"&gt;Rossei, Victor&lt;/item&gt;
&lt;item key="55"&gt;Ávila, Walkiria Samuel&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@sfx.category"&gt;
&lt;array&gt;
&lt;item key="0"&gt;Health Sciences&lt;/item&gt;
&lt;item key="1"&gt;Health Sciences&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="rft.epage"&gt;67&lt;/item&gt;
&lt;item key="fetchid"&gt;/entrez/eutils/efetch.fcgi?db=PubMed&amp;amp;id=22286365&amp;amp;retmode=xml&lt;/item&gt;
&lt;item key="rft.spage"&gt;1&lt;/item&gt;
&lt;item key="@rft.auinit1"&gt;
&lt;array&gt;
&lt;item key="0"&gt;A&lt;/item&gt;
&lt;item key="51"&gt;S&lt;/item&gt;
&lt;item key="52"&gt;T&lt;/item&gt;
&lt;item key="55"&gt;W&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="@svc.constraints"&gt;
&lt;array&gt;
&lt;item key="0"&gt;getFullTxt&lt;/item&gt;
&lt;/array&gt;
&lt;/item&gt;
&lt;item key="rft.pmid"&gt;22286365&lt;/item&gt;
&lt;/hash&gt;
&lt;/perldata&gt;
&lt;/ctx_object_1&gt;</ctx_obj_set>
<targets>
<target>
<target_name>MISCELLANEOUS_FREE_EJOURNALS</target_name>
<target_public_name>Free E- Journals</target_public_name>
<target_service_id>110976638852341</target_service_id>
<service_type>getFullTxt</service_type>
<parser>Bulk::BULK</parser>
<parse_param>jkey=http://www.arquivosonline.com.br/</parse_param>
<proxy>no</proxy>
<crossref>no</crossref>
<note></note>
<authentication></authentication>
<char_set>iso-8859-1</char_set>
<displayer>FT::NO_FILL_IN</displayer>
<target_url>http://www.arquivosonline.com.br/</target_url>
</target>
</targets>
</sfx_menu>

在某些地方,突出的角色变得无法辨认。我知道有一个事实,使用java SAX解析器可以解析它。我只是需要帮助才能在javascript中完成。

有什么想法吗?

提前谢谢=)

1 个答案:

答案 0 :(得分:1)

试试这个,

var parser = new DOMParser();
var doc = parser.parseFromString(xmlString, "application/xml");
var ctx_obj_set = doc.getElementsByTagName('ctx_obj_set')[0];

var subdoc = parser.parseFromString(ctx_obj_set.firstChild.nodeValue,"application/xml");

它将<ctx_obj_set>的内容作为字符串读取并将其解析为另一个子XML文档

JSFiddle:http://jsfiddle.net/TKa9R/(查看控制台F12)