使用jQuery在XML解析文件中选择正确的语言字段

使用jQuery在XML解析文件中选择正确的语言字段,jquery,xml,Jquery,Xml,我有一个XML文件,格式如下 <movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="movies.xsd"> <movie key="1"> <movieId>1</movieId> <movieTitle>Alien</movieTitle> <movieDate>1

我有一个XML文件,格式如下

<movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="movies.xsd">
 <movie key="1">
  <movieId>1</movieId>
  <movieTitle>Alien</movieTitle>
  <movieDate>1979</movieDate>
  <movieUrl>http://www.imdb.com/title/tt0078748/</movieUrl>
 </movie>
 <movie key="2">
  <movieId>2</movieId>
  <movieTitle>Robocop</movieTitle>
  <movieDate>1987</movieDate>
  <movieUrl>http://www.imdb.com/title/tt0093870/</movieUrl>
 </movie>
这一切都很完美,但我想在其中添加一些多语言支持,但希望将所有语言保留在同一个文件中,而不必担心它的多个版本。因此,我将XML修改为以下内容,注意标题上的新lang=pt:

<movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="movies.xsd">
 <movie key="1">
  <movieId>1</movieId>
  <movieTitle lang="en">Alien</movieTitle>
  <movieTitle lang="pt">Alien - O 8.º Passageiro</movieTitle>
  <movieDate>1979</movieDate>
  <movieUrl>http://www.imdb.com/title/tt0078748/</movieUrl>
 </movie>
 <movie key="2">
  <movieId>2</movieId>
  <movieTitle lang="en">Robocop</movieTitle>
  <movieTitle lang="pt">Robocop - O polícia do futuro</movieTitle>
  <movieDate>1987</movieDate>
  <movieUrl>http://www.imdb.com/title/tt0093870/</movieUrl>
 </movie>
更新

使用下面的代码,我已经让它工作,但有任何方法来优化它

//find movieName in correct language
jQuery(this).find("movieTitle").each(function()
{
    movieNameLang = jQuery(this).attr("lang");
    if(movieNameLang == "en")
    {
        movieName = jQuery(this).text();
    }
    if(movieNameLang == languageCode)
    {
        movieName = jQuery(this).text();
    }
});

至少,你可以放弃这个发现

<script>var languageCode = "pt";</script>
 movieNameObj = jQuery(this).find("movieTitle");
 movieNameObj.filter(function() { 
     return jQuery(this).attr('lang:ro'); }).each(function() {
         console.log("Matched RO");
     });
//find movieName in correct language
jQuery(this).find("movieTitle").each(function()
{
    movieNameLang = jQuery(this).attr("lang");
    if(movieNameLang == "en")
    {
        movieName = jQuery(this).text();
    }
    if(movieNameLang == languageCode)
    {
        movieName = jQuery(this).text();
    }
});
//find movieName in correct language
jQuery("movieTitle", this).each(function()
{
    movieNameLang = jQuery(this).attr("lang");
    if(movieNameLang == "en")
    {
        movieName = jQuery(this).text();
    }
    if(movieNameLang == languageCode)
    {
        movieName = jQuery(this).text();
    }
});