【问题标题】:Parsing XML Text with jQuery使用 jQuery 解析 XML 文本
【发布时间】:2012-04-12 06:26:52
【问题描述】:

我正在使用每组有 X 和 Y 点的数据库,它用于绘制图像的轮廓。

现在在我的网页端,这段代码是我用来获取积分的:

var Drawing = $(XML).find('DrawingXML');

alert($(Drawing[1]).text());

结果:

 <DrawingPoints>
   <Point><X>1</X><Y>2</Y></Point>
   <Point><X>2</X><Y>4</Y></Point>
   <Point><X>3</X><Y>5</Y></Point>
   <Point><X>2</X><Y>2</Y></Point>
   <Point><X>0</X><Y>4</Y></Point>
 </DrawingPoints>

使用 .replace() 调用只会更改一项,因此它可用于以下情况:

.replace("</DrawingPoints>",""); 

但如果我想替换所有“点”标签,我就不走运了。

我的目标是使用画布功能来绘制点,所以我希望它像这样解析:

ctx.beginPath();
ctx.moveTo(1,2);
ctx.lineTo(2,4);
ctx.lineTo(3,5);
ctx.lineTo(2,2);
ctx.lineTo(0,4);
ctx.stroke();

我不会在 IE 浏览器上仅使用 Safari/Chrome,如果有帮助的话。

【问题讨论】:

    标签: javascript jquery xml arrays parsing


    【解决方案1】:

    在这种情况下,您可能会通过使用库而不是编写自己的代码来节省大量的脑力劳动。

    我认为d3 可以满足您的需求:

    【讨论】:

    • 这看起来很有趣,如果我没有解决方案,我可能会使用它。总的来说,我只是对编程很陌生,而且看一个新的库实在是太让我头疼了。
    • 我认为库是最好的学习方式 - 您可以了解如何设计解决问题的方法并查看源代码以了解具体的实现细节。
    【解决方案2】:

    查看此问题/答案。它不是特定于原型的,应该在这里对您有所帮助。

    How to parse XML string with Prototype?

    【讨论】:

      【解决方案3】:

      一次获取所有 X 和 Y 值:

      var 点 = {};
      点数.X = 数组();
      点.Y = 数组();
      变量 ix = 0;
      
      $(XML).find('DrawingXML DrawingPoints Point X').each(function()
      {
          points.X[ix++] = $(this).text();
      });
      $(XML).find('DrawingXML DrawingPoints Point Y').each(function()
      {
          points.Y[ix++] = $(this).text();
      });

      这可能不准确,我没有测试它,我的 Javascript 有点生疏,但你明白了。

      【讨论】:

      • 感谢您的帮助,但问题是找到适用于“DrawingXML”的作品,但 DrawingPoints > Point > Y 所有这些“XML”项目都保存在文本中,如果有意义的话,它们实际上不是 XML ...如果有办法通过 jquery 将文本转换为 XML,然后这样做...那就太好了。
      • 如果您将该字符串加载到 jquery 中,您将拥有要搜索和循环的对象。
      • jQuery 可以解析任何标记,无论是 XML、XHTML 还是 HTML。将您的整个 XML 结构输入到 jQuery 中,这样它就可以发挥它的魔力。如果您不知道如何实际将 XML 作为字符串获取,那可能是另一个单独的问题。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      相关资源
      最近更新 更多