使用Python解析XML 系统 系统 看得见的 CIE光源D65 1nm.ssp ASTM E308 1931 Y.dsp 传输前端 LBNL/Klems满 LBNL/Klems满 BTDF 1, 2, 3, 3 系统 看得见的 CIE光源D65 1nm.ssp ASTM E308 1931 Y.dsp 传回 LBNL/Klems满 LBNL/Klems满 BTDF 555, 555 .......

使用Python解析XML 系统 系统 看得见的 CIE光源D65 1nm.ssp ASTM E308 1931 Y.dsp 传输前端 LBNL/Klems满 LBNL/Klems满 BTDF 1, 2, 3, 3 系统 看得见的 CIE光源D65 1nm.ssp ASTM E308 1931 Y.dsp 传回 LBNL/Klems满 LBNL/Klems满 BTDF 555, 555 .......,python,xml,Python,Xml,如何使用Python读取散点数据元素中的1,2,3,3,并将其更改为5,8,8 有两个元素称为分散数据,只有第一个元素被更改 谢谢大家! 您应该查看可用于在python中使用XML的库。您可以从这里开始您应该了解可用于在python中使用XML的库。您可以从这里开始这里有一个使用的解决方案。基本上,它允许您直接访问数据,并根据需要对其进行修改 <?xml version="1.0" encoding="UTF-8"?> <WindowElement xmlns="http://

如何使用Python读取散点数据元素中的
1,2,3,3
,并将其更改为
5,8,8

有两个元素称为分散数据,只有第一个元素被更改


谢谢大家!

您应该查看可用于在python中使用XML的库。您可以从这里开始

您应该了解可用于在python中使用XML的库。您可以从这里开始

这里有一个使用的解决方案。基本上,它允许您直接访问数据,并根据需要对其进行修改

<?xml version="1.0" encoding="UTF-8"?>
<WindowElement xmlns="http://windows.lbl.gov">
    <WindowElementType>System</WindowElementType>
    <Optical>
        <WavelengthData>
            <LayerNumber>System</LayerNumber>
            <Wavelength unit="Integral">Visible</Wavelength>
            <SourceSpectrum>CIE Illuminant D65 1nm.ssp</SourceSpectrum>
            <DetectorSpectrum>ASTM E308 1931 Y.dsp</DetectorSpectrum>
            <WavelengthDataBlock>
                <WavelengthDataDirection>Transmission Front</WavelengthDataDirection>
                <ColumnAngleBasis>LBNL/Klems Full</ColumnAngleBasis>
                <RowAngleBasis>LBNL/Klems Full</RowAngleBasis>
                <ScatteringDataType>BTDF</ScatteringDataType>
                <ScatteringData> 1, 2, 3, 3 
                             </ScatteringData>
            </WavelengthDataBlock>
        </WavelengthData>
    <WavelengthData>
        <LayerNumber>System</LayerNumber>
        <Wavelength unit="Integral">Visible</Wavelength>
        <SourceSpectrum>CIE Illuminant D65 1nm.ssp</SourceSpectrum>
        <DetectorSpectrum>ASTM E308 1931 Y.dsp</DetectorSpectrum>
        <WavelengthDataBlock>
            <WavelengthDataDirection>Transmission Back</WavelengthDataDirection>
            <ColumnAngleBasis>LBNL/Klems Full</ColumnAngleBasis>
            <RowAngleBasis>LBNL/Klems Full</RowAngleBasis>
            <ScatteringDataType>BTDF</ScatteringDataType>
            <ScatteringData> 555, 555
.......
哪些产出:

import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(open("waves.xml"))
soup.scatteringdata.string = "5, 8, 8"
print soup.prettify()
然后按照您的意愿进行处理

这里有一个使用的解决方案。基本上,它允许您直接访问数据,并根据需要对其进行修改

<?xml version="1.0" encoding="UTF-8"?>
<WindowElement xmlns="http://windows.lbl.gov">
    <WindowElementType>System</WindowElementType>
    <Optical>
        <WavelengthData>
            <LayerNumber>System</LayerNumber>
            <Wavelength unit="Integral">Visible</Wavelength>
            <SourceSpectrum>CIE Illuminant D65 1nm.ssp</SourceSpectrum>
            <DetectorSpectrum>ASTM E308 1931 Y.dsp</DetectorSpectrum>
            <WavelengthDataBlock>
                <WavelengthDataDirection>Transmission Front</WavelengthDataDirection>
                <ColumnAngleBasis>LBNL/Klems Full</ColumnAngleBasis>
                <RowAngleBasis>LBNL/Klems Full</RowAngleBasis>
                <ScatteringDataType>BTDF</ScatteringDataType>
                <ScatteringData> 1, 2, 3, 3 
                             </ScatteringData>
            </WavelengthDataBlock>
        </WavelengthData>
    <WavelengthData>
        <LayerNumber>System</LayerNumber>
        <Wavelength unit="Integral">Visible</Wavelength>
        <SourceSpectrum>CIE Illuminant D65 1nm.ssp</SourceSpectrum>
        <DetectorSpectrum>ASTM E308 1931 Y.dsp</DetectorSpectrum>
        <WavelengthDataBlock>
            <WavelengthDataDirection>Transmission Back</WavelengthDataDirection>
            <ColumnAngleBasis>LBNL/Klems Full</ColumnAngleBasis>
            <RowAngleBasis>LBNL/Klems Full</RowAngleBasis>
            <ScatteringDataType>BTDF</ScatteringDataType>
            <ScatteringData> 555, 555
.......
哪些产出:

import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(open("waves.xml"))
soup.scatteringdata.string = "5, 8, 8"
print soup.prettify()

然后按照您的意愿处理它,如果您必须处理xml,我建议您看一下

他们说lxml是Python语言中处理XML和HTML的功能最丰富、最易于使用的库。而且它比其他替代品更快、更健壮。并且一定要搜索lxml和其他,因为在前面的问题中有很多关于使用哪一个的建议

originalData = soup.scatteringdata.string 

如果您必须处理xml,我建议您看看

他们说lxml是Python语言中处理XML和HTML的功能最丰富、最易于使用的库。而且它比其他替代品更快、更健壮。并且一定要搜索lxml和其他,因为在前面的问题中有很多关于使用哪一个的建议

originalData = soup.scatteringdata.string 

您总是需要做同样的更改吗?开始做一些事情:对于一个好的XML解析接口,请看一看,这将让您开始。实际数据非常大(145 x 145)矩阵,因此我需要编写一个程序来更改它。。。。谢谢。你总是需要做同样的更改吗?开始做一些事情:为了一个好的XML解析接口,请看一看,这将让你开始。实际数据非常大(145 x 145)矩阵,所以我需要编写一个程序来更改它。。。。谢谢。你为什么推荐
lxml.etree
而不是
xml.etree.cElementTree
?它们几乎可以互换。在许多地方,其中一个或另一个更适合于特定的用例,但是如果这些用例都不相关,那么
cElementTree
是内置的,而
lxml
需要安装一个C库,然后安装一个Python模块,这是一个相当大的成功。在一定程度上同意。对我来说,如果需要使用XML和HTML,lxml提供的选择是最广泛和最强大的。不仅仅是lxml.etree,还有lxml.builder lxml.html等等。如果您需要所有这些,那么lxml就是要深入研究的库。如果你不这样做,“内置的”是一个很好的选择。同意lxml的岩石一般。只是
ElementTree
API不需要它。为什么您推荐
lxml.etree
而不是
xml.etree.celementree
?它们几乎可以互换。在许多地方,其中一个或另一个更适合于特定的用例,但是如果这些用例都不相关,那么
cElementTree
是内置的,而
lxml
需要安装一个C库,然后安装一个Python模块,这是一个相当大的成功。在一定程度上同意。对我来说,如果需要使用XML和HTML,lxml提供的选择是最广泛和最强大的。不仅仅是lxml.etree,还有lxml.builder lxml.html等等。如果您需要所有这些,那么lxml就是要深入研究的库。如果你不这样做,“内置的”是一个很好的选择。同意lxml的岩石一般。只是
ElementTree
API不需要它。